• Sábado 14 de Diciembre de 2024, 18:50

Autor Tema:  Re: Conversión de entero a texto en C++  (Leído 1620 veces)

GTow

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Conversión de entero a texto en C++
« en: Miércoles 20 de Agosto de 2003, 11:30 »
0
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

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Conversión de entero a texto en C++
« Respuesta #1 en: Viernes 22 de Agosto de 2003, 15:36 »
0
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:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Conversión de entero a texto en C++
« Respuesta #2 en: Sábado 23 de Agosto de 2003, 04:00 »
0
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!

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Conversión de entero a texto en C++
« Respuesta #3 en: Sábado 23 de Agosto de 2003, 18:09 »
0
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:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

GTow

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Conversión de entero a texto en C++
« Respuesta #4 en: Sábado 23 de Agosto de 2003, 18:43 »
0
Me ha funcionado perfectamente lo del _itoa, muchas gracias por la ayuda y el interes a ambos