elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] pasar un entero a char*
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] pasar un entero a char*  (Leído 6,023 veces)
KandiZickZad

Desconectado Desconectado

Mensajes: 20



Ver Perfil WWW
[C] pasar un entero a char*
« en: 2 Mayo 2011, 04:14 am »

Buenas, espero que me puedan ayudar.
Mi duda es muy basica, pero como no tengo mucha experiencia pues no logro resolverla.

Estoy haciendo un juego en C con gtk+, y necesito que el valor (tipo int) de un spin button se vea en un label que esta a la par y que cambie cada vez que se escoge un nuevo valor para el spin button.

El problema que tengo es que ocupo de alguna manera de tomar el valor int y pasarlo a char *

hice este codigo, pero me da error por usar tan directamente el sprintf

Código:
	char * intAChar (char * str, int num)
{
return sprinf(str,"%d",num);
}

intento llamar ese codigo de esta manera

Código:
int spinValorInt;
spinValorInt = gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinTamano));
labelTamano = gtk_label_new(intAChar("",spinValorInt));

Espero que alguien me pueda ayudar, gracias!


En línea




d(n n)b
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [C] pasar un entero a char*
« Respuesta #1 en: 2 Mayo 2011, 08:01 am »

Es sprintf, no sprinf, por eso te da error, sprinf no devuelve un char*, devuelve un int.

Lo que podrías hacer es esto:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. unsigned int digitos(signed int numero)
  5. {
  6.    signed int temporal, digitos = 0;
  7.    while(numero)
  8.    {
  9.        temporal = numero % 10;
  10.        numero /= 10;
  11.        digitos++;
  12.    }
  13.    return digitos;
  14. }
  15.  
  16. char *intAChar(signed int n)
  17. {
  18.    char *string = malloc(sizeof(char) * digitos(n));
  19.    sprintf(string, "%d", n);
  20.    return string;
  21. }
  22.  
  23. int main(void)
  24. {
  25.    signed int n = 31416;
  26.    char *string = intAChar(n);
  27.    printf("%s\n", string);
  28.  
  29.    free(string);
  30.  
  31. return 0;
  32. }
  33.  


« Última modificación: 2 Mayo 2011, 08:17 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pasar int to char y Viceversa
Programación C/C++
rembolso 3 4,386 Último mensaje 29 Enero 2011, 19:03 pm
por The Swash
Pasar de cadena(char) a entero(int) sin sobrepasar el máximo permitido. « 1 2 3 »
Programación C/C++
NOB2014 21 10,725 Último mensaje 9 Enero 2014, 14:35 pm
por leosansan
Castear un entero a un char en C++
Programación C/C++
gibranini 2 2,778 Último mensaje 13 Octubre 2014, 06:03 am
por gibranini
Solucionado - ¿Por qué no me imprime el valor entero en cout?. (char)
Programación C/C++
TØtti 4 4,378 Último mensaje 2 Febrero 2016, 09:35 am
por Eternal Idol
Detectar ENTER pero como tipo entero y no Char
Programación C/C++
Detectorup 4 3,120 Último mensaje 18 Diciembre 2018, 16:15 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines