Ir para conteúdo
Fórum Script Brasil
  • 0

Conversão De Int Para Char


Aquibrasil

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

Graymalkin, we have a problem. Hehehe... eu gostaria de uma maneira alternativa de fazer isso pois estou usando a <windows.h> que adora entrar em conflito com a biblioteca standard do C++.

Por isso, reformulo minha pergunta: como se faz (isto é, sem usar funções prontas) para converter int para char? Hummm... já estou começando a ter idéias, mas uma explicação caberia muito bem aqui. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Graymalkin, we have a problem. Hehehe... eu gostaria de uma maneira alternativa de fazer isso pois estou usando a <windows.h> que adora entrar em conflito com a biblioteca standard do C++.

Por isso, reformulo minha pergunta: como se faz (isto é, sem usar funções prontas) para converter int para char? Hummm... já estou começando a ter idéias, mas uma explicação caberia muito bem aqui. wink.gif

A função sprintf() também pode fazer isso. Você tentou ela? De qualquer forma, escrevi duas funções que podem ser utilizadas para isso (na verdade você só utilizará uma delas, a outra é complementar desta):

#include <stdlib.h>
#include <stdio.h>

char itoc(int i) {
     switch (i) {
            case 0: return '0';
            case 1: return '1';
            case 2: return '2';
            case 3: return '3';
            case 4: return '4';
            case 5: return '5';
            case 6: return '6';
            case 7: return '7';
            case 8: return '8';
            case 9: return '9';
     }
}

void itoa(int i, char s[]) {
    int m10 = 1;
    int qt = 0;
    int n;
    
    while (((int)(i/m10))>0)
        m10 *= 10;

    m10 /= 10;
    
    while (m10>0) {
        n = (int)(i/m10) - ((int)(i/(m10*10))*10);
        s[qt] = itoc(n);
        m10 /= 10;
        qt++;
    }
    s[qt] = '\0';
}

int main() {
    int i = 32768;
    char s[10];
    
    itoa(i, s);
    
    printf("%s\n", s);
    system("pause");
}

Todavia, só vai funcionar para os inteiros positivos. Mas, acredito que seja fácil ajustar se você necessitar de negativos também.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...