SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: GTow en Miércoles 20 de Agosto de 2003, 11:30
-
Hola, quiero crear unos nombres (tipo texto), que comiencen por t_ y iran seguidos de un numero contenido en una variable. He intentado lo siguiente:
int num_temp; (ya inicializada antes)
char *sal;
strcpy(sal, "t_");
strcat(sal, num_temp);
Claro que así no puede compilar, pero si cambio la ultima linea por:
strcat(sal, (char*)num_temp)
yo pensaba que hacía una conversión, y de hecho compila, pero da un error en tiempo de ejecución. Parece algo muy sencillo, pero no me funciona.
Gracias por la ayuda
-
en efecto eso te arroja error porque si conviertes ese entero a cadena de esa forma , realmente estarias convirtiendo al caracter correspondiente..
ejemplo
si el numero es el 65 al pasarlo a cadena es probable que lo asimile como el caracter 65 que es la letra A, si el rango del numero es superior al del rango ascii muy seguramente te arrojara error en tiempo de ejecucion.
LA funcion para convertir tipos de datos a caracter o cadenas, es strtol()
long strtol(const char *s, char **endp, int base);
ejemplo:
printf("Enter a number: "); fflush(stdout);
gets(buf);
char *bp;
printf("The value is %dn", strtol(buf, &bp, 0));
Juank:hippi:
-
mmmmm nop, al reves, strtol = string-to-long. lo q el quiere es pasar de numero a caracter (en q quedamos con lo de la marihuana?)
para eso puedes usar _ltoa
char *_ltoa( long numero, char *string, int base);
por ejemplo:
char *sal, *num;
_ltoa(num_temp, num, 10);
strcpy(sal, "t_");
strcat(sal, num);
(solo un ejemplo, algo q se me vino a la mente...)
pd: traducete los ejemplos, flojo!
-
ahh si es que lei mal, lo de lkos ejemplos es por que cuando no tengo los mios a la mano, s o sea cuando estoy en la oficina, me copio los de la libc del djgpp.... jjajajaja
Juank:hippi:
Ademas recuerda que yo no meto marihuana, a acambio me la paso o programando o juegando nintendo... eso produce un efecto muy similar.. jajajajaj:sorcerer:
-
Me ha funcionado perfectamente lo del _itoa, muchas gracias por la ayuda y el interes a ambos