Converter INT pra CHAR.

1. Converter INT pra CHAR.

BrunoPeinado
peinado

(usa Ubuntu)

Enviado em 13/06/2010 - 19:38h

Olá pessola.

Eu tenho uma variável no formato int e quero passar o valor dela para um char, como faço isso ?

Exemplo:
int a;
char b;
a = 10
b = a;

printf b; Só que dia sai uma coisa muito estranha, ao invés de 10.



  


2. Re: Converter INT pra CHAR.

André
andrezc

(usa Debian)

Enviado em 13/06/2010 - 19:42h

http://www.frihost.com/forums/vt-30981.html


3. Re: Converter INT pra CHAR.

BrunoPeinado
peinado

(usa Ubuntu)

Enviado em 13/06/2010 - 19:45h

mas em C puro.


4. Re: Converter INT pra CHAR.

André
andrezc

(usa Debian)

Enviado em 13/06/2010 - 19:54h

é tipo:

int a;
char b;


a = b - 48;


Qualquer coisa dê uma olhada em:
http://www.vivaolinux.com.br/dica/Passar-variaveis-char-para-inteiro


5. Re: Converter INT pra CHAR.

BrunoPeinado
peinado

(usa Ubuntu)

Enviado em 13/06/2010 - 23:16h

Essa dica é se eu quiser passar de CHAR pra INT.
Agora se eu quiser passar de char pra int faço como ?

Tem compilador que aceita itoa, agora o Linux não.


6. Re: Converter INT pra CHAR.

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 17/06/2010 - 13:12h

Depende da informação que você quer:
O post ai de cima tá certo.

Você tem que entender a tabela ASCII pra isso:

int main ( void )
{
register int i;
for ( i = 0; i < 256; i++ )
printf ("%d\t%c\t%x\n", i, i ,i);

return 0;
}

Esse programa vai imprimir a tabela ASCII pra você em DECIMAL, CHAR e HEXA.

Se o que você quer fazer é passar um valor maior que 9 para char (exemplo, 10) e que o programa imprima o numero 10, você nao vai conseguir. Char é apenas um caractere, e o numero 10 são 2, alem de não ter o numero 10 na tabela ASCII. 10 seria o 1 e o 0 (49 e 48 na tabela).

Mas para imprimir o caractere que o numero representa na tabela é bem simples.

printf ( "%c", 65 ); // vai imprimir 'A'
printf ( "%c", 50 ); // vai imprimir '2'

Entendeu?

Para imprimir o 10 por exemplo, você precisa passar numero por numero para uma string e imprimir a string.

char *ntostr ( int dec )
{
register int i;
char *str = (char *) malloc ( MAX_SIZE * sizeof(char));
char *aux = (char *) malloc ( MAX_SIZE * sizeof(char));

for ( i = 0; i < MAX_SIZE; i++ )
{
if ( dec == 0 ) break;
str[i] = (dec % 10) + 48;

dec /= 10;
}
str[i] = 0x0;

return str;
}

Essa função devolve uma string com o numero invertido. Ai é so fazer outra pra desenverter ou colocar um for() no final dela. Coisa simples.

ntostr(156) = 651 em string

Espero ter ajudado,
Qualquer coisa posta denovo,
[]'s
Enzo




7. hmm...

sombriks
sombriks

(usa Slackware)

Enviado em 17/06/2010 - 13:25h

http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/

isso serve pra strings; se você conseguir transformar seu char em string isso pode resolver


8. Re: Converter INT pra CHAR.

Miguel Arcanjo
Miguel Arcanjo3

(usa Debian)

Enviado em 17/06/2010 - 14:38h

tenta o seguinte:
b = a + '';

OBS: não são aspas, são plicas ou clicas.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts