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

Convertir Char a Int C++

Estas en el tema de Convertir Char a Int C++ en el foro de C/C++ en Foros del Web. Hola amigos con otra duda necesito convertir un dato que es de tipo char que se almacena en una pila este dato por supuesto es ...
  #1 (permalink)  
Antiguo 14/04/2009, 18:03
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Convertir Char a Int C++

Hola amigos con otra duda necesito convertir un dato que es de tipo char que se almacena en una pila este dato por supuesto es un numero, vi algo el atoi, pero no me funciona uso visual c++ agradesco de antemano la ayuda

Última edición por baxi2990; 14/04/2009 a las 23:32
  #2 (permalink)  
Antiguo 15/04/2009, 01:29
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Convertir Char a Int C++

Comproba que sea un numero ASCII (>= '0' && <= '9') y restale el valor de '0', con eso pasas del ASCII al numero.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 15/04/2009, 10:28
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Convertir Char a Int C++

En este link hay unas soluciones espero te ayuden en algo:


http://www.programacionenc.net/modul...iewtopic&t=112
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #4 (permalink)  
Antiguo 15/04/2009, 10:46
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Convertir Char a Int C++

Y esta mal, un casting no sirve ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 15/04/2009, 12:13
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Convertir Char a Int C++

Gracias por las respuetaslo que dice Eternal Idol es funcional pero para numeros de 0 a 9 pero en mi pila podran ingresar numeroas como 100 75 etc intente con el atoi pero no funciona con mi pila

hago esto

struct pila
{
char caracter;
pila *link;
};

donde caracter contiene el caracter y *link la direccion de memoria del dato al que apunta, supongamos que mi pila contiene

Cima
25 -> 10 -> 5

tomo el caracter de la cima de mi pila (25)
int temp1;
temp1=atoi((*cima).caracter);

pero me muesta esto:

error C2664: 'atoi' : no se puede convertir el parámetro 1 de 'char' a 'const char *'
La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función

probe con algo sencillo como esto

int c;
c=atoi("15");
cout<<c<<endl;

y si funciona luego probe hace esto
char a;
int temp1;
a=(*cima).caracter;
cout<<a<<endl;
temp1=atoi(a);
cout<<temp1<<endl;
pero no da me muesta lo mismo q puse antes agradesco la ayuda
  #6 (permalink)  
Antiguo 15/04/2009, 12:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Convertir Char a Int C++

En un char no podes tener un numero ASCII que sea mayor a 9 ... cada uno ocupa un char por si mismo ... con lo cual ahi tenes un numero y no tendrias que transformar nada o son numeros ASCII (0-9) ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 15/04/2009, 12:46
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Convertir Char a Int C++

¿alguna idea para lograr esto?, la idea es operar una expresion postfija como esta

536*+24*7+8*+

Última edición por baxi2990; 15/04/2009 a las 12:59
  #8 (permalink)  
Antiguo 15/04/2009, 16:54
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: Convertir Char a Int C++

Hola,

Tu codigo tiene una pequeña falla que es que con atoi no se pueden convertir un char es decir un solo caracter, con el solo se pueden convertir char*, es decir arreglos de char, que es el error que mencionas (error C2664: 'atoi' : no se puede convertir el parámetro 1 de 'char' a 'const char *'=).


Tu tienes esto:

Código c++:
Ver original
  1. char a;
  2. int temp1;
  3. a=(*cima).caracter;
  4. cout<<a<<endl;
  5. temp1=atoi(a);
  6. cout<<temp1<<endl;


Debes modificarlos así:

Código c++:
Ver original
  1. char a[10]="";
  2. int temp1;
  3. strcpy(a,(*cima).caracter);
  4. cout<<a<<endl;
  5. temp1=atoi(a);
  6. cout<<temp1<<endl;

ahi si te lo convertiría ya que es un char*, y listo...


Espero que haya sido de ayuda...
  #9 (permalink)  
Antiguo 16/04/2009, 14:11
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Convertir Char a Int C++

Gracias a todos por contestar, la ultima respusta me dio unas ideas gracias.
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 18:01.