Foros del Web » Programación para mayores de 30 ;) » C/C++ »

conversion de int a char *

Estas en el tema de conversion de int a char * en el foro de C/C++ en Foros del Web. Hola a todo el mundo, tengo una duda que no consigo resolver de ninguna manera. A ver si me pueden ayudar. El caso es que ...
  #1 (permalink)  
Antiguo 28/01/2008, 04:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 2 meses
Puntos: 0
conversion de int a char *

Hola a todo el mundo,

tengo una duda que no consigo resolver de ninguna manera. A ver si me pueden ayudar. El caso es que desde un fichero recupero un string. Este string lo almaceno en una variable char * cadena. Esta cadena, tiene un formato específico, del cual recupero un número que, mediante la funcion atoi, lo convierto a entero y lo incremento en una unidad.
Una vez incrementado, quiero volver a guardar la cadena en el fichero con el número incrementado, es decir, si recupero la cadena "cad0" pues insertar en el fichero "cad1". El problema está en que el número que incremento es un entero y no me deja concatenar el "cad" con el numero mediante la función strcat. Y tampoco me deja meter el número en el fichero.
La pregunta es si alguien sabe cómo convertir ese entero a char * para poder concatenarlo con la cadena "cad" y posteriormente poder escribirlo en el fichero.

Muchas gracias por la ayuda prestada, un saludo,
edude.
  #2 (permalink)  
Antiguo 28/01/2008, 05:06
Avatar de define  
Fecha de Ingreso: enero-2008
Mensajes: 100
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: conversion de int a char *

has probado un

char a; int i=5;

a = (char *) i;

nose si te funcionara como esperas, pero es el tipo de conversiones que se pueden hacer en C.
  #3 (permalink)  
Antiguo 28/01/2008, 05:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: conversion de int a char *

Hola define, si que lo probé y tampoco me valía. Me daba errores por todos los lados.
Y aunque no lo creas, acabo de dar con la solución. Os dejo el codigo por si a alguien más le vale.

Saludos a todos!!
edude.


int main( int argc, char * argv[] ) {
int i = 0;
int log = 0;
char s_log[ 80 ];
char fecha[] = "28/01/2008";

for( i = 0; i < 20; i++ ) {
snprintf( s_log, sizeof( s_log ), "%d", log );
strcat( s_log, ";" );
strcat( s_log, fecha );
printf( "FECHA: %s\n", s_log );
log++;
}

system( "PAUSE" );
return 0;
}
  #4 (permalink)  
Antiguo 28/01/2008, 05:42
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Re: conversion de int a char *

Lo que necesitas simplemente es un sprintf()
Ejemplo:
char buffer[200];
char * prefijo = "cad";
int valor = 28; /* despues de haberlo leido e incrementado */
sprintf( buffer, "%s%d", prefijo, valor );

Y en el buffer ya tienes lo que querías.
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:56.