Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nelly

Inteiro para char

Recommended Posts

Alguem sabe como poderia converter um INT para CHAR em C ANSI, ou seja, sem usar itoa, atoi e derivados.Obrigado

ueh... cast
#include <stdio.h>int main() {	int a = 65;	char c = (char)a;	printf("%c \n", c);	return 0;}
65 é o código da letra a maiuscula

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Ricardo Lima (Aram)Na verdade eu preciso de converter o algarismo int para string.Por exemplo:a = 12345;eu peciso de uma função que converta para string , formando a string:"12345", de forma que eu posso manipular-la como um vetor de caracteres, usando indices etc..Valeu pela ajuda !

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, os comentários estão no código. Esse não usa nem a função log de math.h, eu calculei direto na função. divirta-se

 

editado... onde você lê '\' é para colocar ASPAS_SIMPLES BARRA_INVERTIDA ZERO ASPAS_SIMPLES. esse forum zicado apaga o 0 por algum motivo....

 

#include <stdio.h>#include <stdlib.h>/* Recebe um inteiro de 0-9 e retorna o char correspondente */char int09ToChar(int i) {	if (i < 0 || i > 9) return '?';	else return ('0' + i);	/* chars são numeros inteiros representados como letras.	o char '0' é o numero 48, '1' é o char 49 e assim vai.	exemplos:	char a = 112;	printf("%d", a); ---> imprime o numero 112 (char a como inteiro)	printf("%c", a); ---> imprime a letra p (char a como caractere) */}/* Devolve uma string que é a representação do inteiro i. StringAlocada dinâmicamente. Não se esqueça de limpá-la ao término de seu uso. */char* intToString(int i) {	/* primeiro temos que detectar o tamanho da string */	int tamanho;	/* fazemos uma cópia de i pois iremos precisar do i original depois */	int j = i;	/* iterador */	int k;	/* resultado */	char *resultado;	do {		j = j / 10;		tamanho++;	} 	while (j > 0);		/* alocamos o espaço para a string. tamanho + 1 pois depois do numero	 é necessário o '\'  para indicar final da string. */	resultado = (char*) malloc((tamanho + 1)*sizeof(char));	for (k = 0; k < tamanho; k++) {		resultado[(tamanho - 1) - k] = int09ToChar(i % 10);		i = i / 10;	}	/* toda string tem que ter o char '\' no final */	resultado[tamanho] = '\';	return resultado;	} int main() {	int a = 1234567890;	printf("%s \n", intToString(a));	return 0;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.