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

[SOLUCIONADO] como asignar numeros variables char

Estas en el tema de como asignar numeros variables char en el foro de C/C++ en Foros del Web. hola a todo. bueno quisiera saber como poner una variable int en una tipo char. intente esto peor no me funciona alguien me podria decir ...
  #1 (permalink)  
Antiguo 29/04/2014, 12:17
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Pregunta como asignar numeros variables char

hola a todo.
bueno quisiera saber como poner una variable int en una tipo char.
intente esto peor no me funciona alguien me podria decir pro que no funciona mi codigo y si aparte de este hay otros metodos para lo que quiero hacer.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main ()
  5. {
  6.     int num = 9, num2  = 7, res;
  7.     char numero[10];
  8.     res = num + num2;
  9.     sprintf(numero, "%c", res);
  10.     printf("%s", numero);
  11.         return 0;
  12. }
  #2 (permalink)  
Antiguo 29/04/2014, 12:21
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: como asignar numeros variables char

¿que esperabas que hiciera el programa?
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 29/04/2014, 13:03
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: como asignar numeros variables char

res igual a 9+7 ¿correcto? o sea 16, eso se comprueba yendo a la tabla asc2 y mirando el elemento numero 16 de la tabla.
Conferimos:

Vuela!!! XDD ahí lo tienes XD

lo que pasa es que estas mostrando el numero 16 en la tabla asc2

tendris que mostrar el 1 y el 6 por separados, realmente lo que tienes que mostrar es el numero 49 y 56 de la tabla
si muestras 40 y luego el 56 y lo imprimes con %c te va salir 16 pero en char como tu quieres =D
¿Como lo hago pues?=(((
Facil ^^

divides el 16 por 10 te va dar uno y te sobra 6, logicamente da 1 y sabra 6

seria asi:

temp = 16/10;


ahora temp vale 1

imprimes ese uno, luego para el 6..

temp = 16%10;

ahora temp contiene el resto de la division y lo imprimes

vale pero ojo no es solo imprimir lo que tienes es un uno y un 6.

veamos como lo convertimos en char.
Si te has fiado la tabla asc2 es una "TABLA"

si imprimes el uno imprimirá el carácter de control SOH de inicio de encabezado que carajo ni se lo que es XDD

si sumamos 48 a ese uno o sea temp+ 48 "¡¡¡vamos a parar en el '1' pero char!!!"

lo mismo con el 6 si le sumamos 48 vamos al carácter '6'

o sea el 6+48 que es el 54 representa el 6.

Ojo con eso, te dejo que hagas el código ¿Creo que ya lo pillas no? XDD
venga...cuando lo tengas ponlo aquí


Toma te dejo pagina XDD http://www.theasciicode.com.ar/
  #4 (permalink)  
Antiguo 29/04/2014, 13:05
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: como asignar numeros variables char

Si la idea era imprimir 16, mas economico

sprintf( numero, "%d", res );
__________________
Visita mi perfil en LinkedIn
  #5 (permalink)  
Antiguo 29/04/2014, 13:07
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: como asignar numeros variables char

res igual a 9+7 ¿correcto? o sea 16, eso se comprueba yendo a la tabla asc2 y mirando el elemento numero 16 de la tabla.
Conferimos:

Vuela!!! XDD ahí lo tienes XD

lo que pasa es que estas mostrando el numero 16 en la tabla asc2

tendrías que mostrar el 1 y el 6 por separados, realmente lo que tienes que mostrar es el numero 49 y 54 de la tabla
si muestras 49 y luego el 54 y lo imprimes con %c te va salir 16 pero en char como tu quieres =D
¿Como lo hago pues?=(((
Facil ^^

divides el 16 por 10 te va dar uno y te sobra 6, lógicamente da 1 y sabrá 6

seria así:

temp = 16/10;


ahora temp vale 1

imprimes ese uno, luego para el 6..

temp = 16%10;

ahora temp contiene el resto de la división y lo imprimes

vale pero ojo no es solo imprimir lo que tienes es un uno y un 6.

veamos como lo convertimos en char.
Si te has fiado la tabla asc2 es una "TABLA"

si imprimes el uno imprimirá el carácter de control SOH de inicio de encabezado que carajo ni se lo que es XDD

si sumamos 48 a ese uno o sea temp+ 48 "¡¡¡vamos a parar en el '1' pero char!!!"

lo mismo con el 6 si le sumamos 48 vamos al carácter '6'

o sea el 6+48 que es el 54 representa el 6.

Ojo con eso, te dejo que hagas el código ¿Creo que ya lo pillas no? XDD
venga...cuando lo tengas ponlo aquí


Toma te dejo pagina XDD http://www.theasciicode.com.ar/

lo iba reeditar por que deje unos errores jaja lo dejo aqui



Cita:
Si la idea era imprimir 16, mas economico

sprintf( numero, "%d", res );
calgary tiene toda la razón, lo que cuento es por si necesitas manejar la tabla, si es para imprimir pues hazlo como entero que es mejor ><

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main () {
  5.  
  6.     int num = 6;   
  7.     char elchar = ( char ) ( num + 48 ); //guardamos int en char y lo correjimos el valor  
  8.     printf ( "%c", elchar );  
  9.     //ahora haremos lo inverso ;)
  10.    
  11.     int temp = ( int )( elchar -48 );  //guardamos char en int y lo correjimos el valor
  12.     printf ( "\n\n%d", temp );
  13.    
  14.    
  15.     // puedes imprimir directamente sin gradar nada
  16.     printf ( "\n\n%c", num+48 );
  17.  
  18.    
  19.     return 0;
  20. }

Es igual para convertir de mayúsculas a minúsculas ^^
Prueba cambiar una minúscula a mayúscula y ya me lo dirás :D

Última edición por vangodp; 29/04/2014 a las 13:23
  #6 (permalink)  
Antiguo 29/04/2014, 17:30
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: como asignar numeros variables char

hola vangodp y CalgaryCorpus.
bueno gracias por la info pero lo que quiero hacer no se bassa en ascii ni nada de eso lo que quiero haceres lo siguiente.
sumar dos numeros que se almacenan en res.
despues de hay quiero pasar el resultado de res a una variable char en este caso llamada numero y despues imprimir la variable char llamada numero.
y bueno estaba investigando y vi que varios dicen que lo han echo con sprintf pero yo ala ahora de hacer no me funciona nose si me hayan entendido.
  #7 (permalink)  
Antiguo 29/04/2014, 19:22
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: como asignar numeros variables char

Esto, usando %d, no te funciona?

sprintf( numero, "%d", res );
__________________
Visita mi perfil en LinkedIn
  #8 (permalink)  
Antiguo 29/04/2014, 20:21
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: como asignar numeros variables char

hola CalgaryCorpus.
si tienes razon ese era mi error muchas gracias.
  #9 (permalink)  
Antiguo 30/04/2014, 03:15
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: como asignar numeros variables char

hmmmm po vale jeje entonces calgary+1 ^^
http://www.cplusplus.com/reference/cstdio/sprintf/
http://c.conclase.net/librerias/?ansifun=sprintf

Es muy interesante esa función sprintf(). En cpp para eso uso strengstream ^^

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4.  
  5. int main() {   
  6.     int edad = 20;
  7.     string texto = "Soy Pepe Luy y tengo ";
  8.     stringstream ss;   
  9.     ss << texto << edad << " tacos XD";
  10.    
  11.     cout << ss.str();    
  12. }

te devuelve:"Soy Pepe Luy y tengo 20 tacos XD"
Suerte ;)

Etiquetas: char, funcion, int, numero, numeros, variables
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 01:34.