Convertir entero a cadena en c
En el post anterior vimos como convertir una cadena a entero, ahora veremos lo contrario.
Igual que atoi nos convierte una cadena en un entero, la función itoa nos convierte un entero en una cadena. El problema de esta función es que no es estándar, y por lo tanto no estará disponible en todos los compiladores o sistemas, por lo tanto vamos a hacer una pequeña “trampa” para emular dicha función.
Para la “trampa” emplearemos la función sprintf:
int sprintf(char *cadena, const char *formato, ...);
Esta función es parecida a printf, pero en vez de mandar a la salida estándar el resultado, lo almacena en la variable ‘cadena’. A continuación vamos a ver un sencillo ejemplo:
/**
* Programa:
* Conversion numero entero a cadena
* Descripcion:
* Programa que convierte un numero entero (tipo int) a una cadena de
* caracteres (tipo char *)
* Archivo: int2string.c
* Ejecucion: ./int2string
* Compilar: gcc -Wall -o int2string int2string.c
* Autor:
* Jose Mato
* **/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int num_entero = 529;
char cadena[10];
/* la salida se almacena en la variable 'cadena' -> convertimos la
variable num_entero a un array de caracteres (string) */
sprintf(cadena, "%d", num_entero);
/* visualizamos la variable 'cadena' */
puts(cadena);
return EXIT_SUCCESS;
}
En el programa anterior vemos la transformación de un entero a una cadena, pero usando la función sprintf podemos convertir cualquier variable de tipo numérico (real, flotante, …) a una cadena, cambiando evidentemente el formato (%d, %f, %lf, …)
Descargar: programa int2string

Ping
Muy bueno, he estado buscando por todos lados y me salia el error undefined reference to itoa y me estaba volviendo loco para convertir el entero.
Con este aporte sin problemas.
Muchas gracias y buen blog.