Como manejar cadenas en c??

Iniciado por rod00x3, 6 Febrero 2013, 20:27 PM

0 Miembros y 1 Visitante están viendo este tema.

avesudra

Cita de: leosansan en  7 Febrero 2013, 22:30 PM
Tienes que pasar el entero a cadena, versus ascii:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>

int main()
{
int p=12;
char valor[10];
char cad[100]={0};
valor[10]=itoa (p,valor,10);
strcat(cad,"El numero actual es: ");
strcat(cad,valor);
strcat(cad,"apresiamos");
printf("%s",cad);
return 0;
}

Saluditos!.
leosansan si te fijas esa función no está definida en el ANSI-C solo que es soportada por algunos compiladores así que es mejor no usarla. Mira aquí donde pone portabilidad:

http://www.cplusplus.com/reference/cstdlib/itoa/

¡Un saludo!
Regístrate en

rir3760

Cita de: avesudra en  7 Febrero 2013, 19:31 PM
El mismo efecto no tiene, aparentemente sí, pero en cadena[1] sigue estando la 'e' y así sucesivamente hasta el carácter nulo de final de cadena.
Mi comentario fue en respuesta al mensaje inmediatamente anterior (de rod00x3), en el utiliza esa función en la forma:
memset(cadena, 0, 1); /* <==aqui */
Por eso comente que no tiene caso utilizar una llamada a función cuando la asignación basta.

Solo un comentario, si lo primero que se piensa hacer con un array es almacenar en el una cadena:
memset(cad, 0, 100);
sprintf(cad, "El numero actual es: %dapresiamos", p);

No es necesario colocar primero (con la función memset) todos los caracteres a cero.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language