C/Visual C - convertir caracter a entero

 
Vista:

convertir caracter a entero

Publicado por ramon fuentes (1 intervención) el 01/04/2005 22:01:11
Hola, he estado buscando en inter y no encuentro si hay alguna funcion, alguien me podria auxiliar, estamos haciendo un programa que toma una cadena sufija (513*+453+*523/), la introduce en una pila, cuando encuentra el caracter de suma, resta, multiplicacion o divicion saca los ultimos dos caracteres que son numeros y hace la operacion, el resultado lo agrega donde se queda la el indice de la pila, lo que no se es como pasar los numeros tipo caracter a tipo numerico, auxilio.
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:convertir caracter a entero

Publicado por jhon (8 intervenciones) el 01/04/2005 22:06:58
le puedes hacer con (int)p
siendo p la variable donde guardas el caracter.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir caracter a entero

Publicado por fernando.gomez (1603 intervenciones) el 02/04/2005 03:26:22
Jeje, bueno, supongo que lo que quieres saber es cómo cambiar por ejemplo '9' a 9. Si haces esto que te comentó John, en lugar de 9 tendrías el código ASCII de 9, a saber, 57. ¡Aguas!

Una forma es restar 48 al número convertido en ASCII (porque 48 es la representación del 0). Tonz:

char ch = '8';
int i = ch - 48; //nota que no es necesario el (int)ch
cout << i << end;

El resultado sería 8, porque el código ASCII de '8' es 56, y 56-48 = 8. En fin, que hay otro método. La biblioteca estándar de C cuenta con funciones de conversión de números a cadenas y viceversa. Pero sólo cadenas, no caracteres. Por ende, tendrías que hacer algo así:

char ch = '8';
char sz[2];
sz[0] = ch;
sz[1] = 0;
cout << atoi(sz) << endl;

Igualmente, el resultado es 8. Es decir, empleamos una cadena de dos caracteres, uno para ch y otro para el nulo. Con eso, ya nos es permitido emplear la función%
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar