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

Casting de char a int

Estas en el tema de Casting de char a int en el foro de C/C++ en Foros del Web. Buenas, mi duda es la siguiente: ¿Hay alguna forma de realizar el casteo de un char, a int, sin que int tome el valor ASCII ...
  #1 (permalink)  
Antiguo 11/10/2008, 05:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Casting de char a int

Buenas, mi duda es la siguiente:

¿Hay alguna forma de realizar el casteo de un char, a int, sin que int tome el valor ASCII del char?

Me explico, cuando yo hago:

Código:
char c='2';
 int p;

p=(unsigned int)c;
Y p me saca 50, que es el valor ASCII del caracter 2, hay algun modo de que esto no ocurra?

Gracias de antemano
  #2 (permalink)  
Antiguo 11/10/2008, 05:39
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Casting de char a int

No es exactamente un casting pero saca el número que contiene un char:
Código:
p = c - '0';
Si es una cadena deberías hacerlo para cada uno de los caracteres.
__________________
Un Lannister siempre cumple sus promesas
  #3 (permalink)  
Antiguo 12/10/2008, 03:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Casting de char a int

Y porque se resta '0' de su valor ascii? No lo entiendo

Muchas gracias
  #4 (permalink)  
Antiguo 12/10/2008, 11:02
Avatar de WaRc3L  
Fecha de Ingreso: agosto-2008
Ubicación: My House
Mensajes: 89
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Casting de char a int

Si lo que intentas, es conseguir un char '2', que se transforme a un int 2, puedes hacer dos cosas:

Una la que te ha dicho Mort20, que resta '0' porque:

0 en valor ASCII es 48 no?
supongamos que quieres transformar un '5' char a int ok?
harias:
P = '5' - '0'

Cogeria el valor, 5 en ASCII osea : 53, y lo restaria por el valor '0' en ASCII osea: 48
53 - 48 = 5!
El resultado de P seria 5.

PD: Gracias Mort20 xD, yo tampoco lo sabia, acabo de comprovarlo en ese mismo post xD

La segunda manera, es utilizar la funcion atoi(), que quiere decir:
ascii to int
Que se encuentra en <stdlib.h> en C i C++, o <cstdlib> en C++
Sus parametros:
int atoi( const char* c );
Pasas de parametro un char c, y lo transforma en un int.


Saludos, espero que te haya servido por algo!
__________________
Habla tu lenguaje favorito! Habla C++!
  #5 (permalink)  
Antiguo 13/10/2008, 07:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Casting de char a int

Muchas gracias por solventar la duda
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 08:05.