UTNianos

Versión completa: Convertir int a char
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola! alguien me peude ayudar con esto? necesito contertir un numero int, a char.......... por ejemplo:

si tengo el numero 14........ que este asi: char[0]=1 char[1]=4 char[2] = NULL y lo que quede del char que sea basura jaja =P no es necesario recortarlo a la medida justa ni malloquear, mas bien algo simple..... ya vi la funcion itoa, pero no es generica. Graicas!
Si lo que queres es hacer vos una funcion que haga eso podes ir haciendo el resto por la posicion. Me refiero
Si tenes 1523. Vas haciendo los restos.
1523 % 10 = 3
1523 % 100 = 23 div 10 = 2
1523 % 1000 = 523 div 100= 5
1523 % 10000 = 1523 div 1000= 1

Debe haber alguna forma bastante mas simple, pero bueno, tengo sueño y me salio eso
EEYY graicas por la idea!! sisi. Pero tengo un problema, lo intente hacer, y cuando intento poner en el char (en la posicion que corresponde) el int del resto, me coloca esto: "\000ELNUMERO".... y como tengo el nulo delante no lo puedo imprimir ni nada. Pongo el codigo. Es cortito:

Cita:int main(void)
{

int numero= 42;
int i=0;
char cNumero[]="textodeprueba";
int resto = 0;
printf("Numero en int: %d\n",numero);
for(i=0; numero>=10; i++)
{
resto = numero%10;
cNumero[i] = (char)resto;
numero = (int)numero/10;
}
cNumero[i] = (int)numero;
cNumero[i+1] = '\0';
printf("Numero en char: %s\n",cNumero);

return 0;
}

NOTA: aun no lo invierto.
Puse en char[]="tesxtodeprueba", para ver si se me corregia.......... pero poriginalmente era un char[10];
Pero la gracia no era hacer la funcion el?

Bah, se ve que entendi cualquiera.
justo iba a decir eso jaja, Gracias Julian por la funcion esa, es muy potente y esta muy buena, pero lo tengo que hacer yo, me lo pidieron asi =P

#include <stdio.h>

int main (void) {

int numero = 123;
char cadena[5];

sprintf (cadena, "%d", numero); // La posta

printf ("%s", cadena);

return 0;

}


________________________________________________

JAJA. Listo, acabo de leer.
Pero si te sirve.. el año pasado me madaron a hacer un ejercicio muy similar pero con flotantes.
Arme una funcion y adentro llame a sprintf y nunca me dijeron nada =P
(mis compañeros hicieron unos programas interminables a los que les tenias que indicar la cantidad de decimales, etc)
Si, ya vi el codigo que pusiste en el link, pero l otengo que hacer yoooo. Porque la idea es que lo tengo que modificar en clase para algo que no se que sera que me pida el profesor.... entonces, por eso subi lo que hice para ver si me podian ayudar con ese problema que tengo
Jajjaa, JulianD queria seguir convenciendolo de que lo haga asi.

Mira, un par de detalles, despues veo el coso de forma mas global, pero ando fiacoso ahora.

Vos lo que queres guardar en el char (supongo yo) es el valor ascii del numero, que no es el mismo que el valor del numero, para poner el valor ascii deberias sumarle 48 al numero. (el 0 es 48, el 1 es 49, etc, etc)



#include <stdio.h>
int main(void)
{

int numero= 42;
int i=0;
char cNumero[]="textodeprueba";
int resto = 0;
printf("Numero en int: %d\n",numero);
for(i=0; numero>=10; i++)
{
resto = numero%10;
cNumero[i] = (char)resto+48;
numero = (int)numero/10;
}
cNumero[i] = (int)numero+48;
cNumero[i+1] = '\0';
printf("Numero en char: %s\n",cNumero);

return 0;
}


Geniaaal!!! SIII, tenes razon! ahi funciona genial! ahora lo invierto y listooo =P graciaas!!!
Fijate que el foro tiene compilador, si usas el boton que dice Codigo y seleccionas el lenguaje podemos ver los resultados de tu codigo facil
Si, intente ponerlo pero no lo encontre, en que parte tengo la opcion? esta junto a la de poner los graficos y eso?
En la barra.
Dice explicitamente la palabra "Codigo"
URLs de referencia