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

Pasar caracter a numero sin atoi

Estas en el tema de Pasar caracter a numero sin atoi en el foro de C/C++ en Foros del Web. Hola! Quisiera saber como puedo convertir un caracter en su correspondiente numero de ASCII sin utilizar la funcion atoi. Gracias!...
  #1 (permalink)  
Antiguo 10/12/2010, 10:13
 
Fecha de Ingreso: julio-2008
Mensajes: 143
Antigüedad: 15 años, 9 meses
Puntos: 0
Pasar caracter a numero sin atoi

Hola! Quisiera saber como puedo convertir un caracter en su correspondiente numero de ASCII sin utilizar la funcion atoi. Gracias!
  #2 (permalink)  
Antiguo 10/12/2010, 11:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Pasar caracter a numero sin atoi

Mira la funcion atoi convierte de caracteres a entero.
Por lo que dices tu quieres pasar de caracter al numero ascii. No tiene nada que ver con atoi. Si es esto lo que quieres simplemente usa a la variable que tenga un caracter como si fuese un entero. o asignala a un enetero de esta forma.
Código C++:
Ver original
  1. int entero;
  2. char caracter;
  3. entero = (int) caracter;

Si lo que en verdad quieres hacer es el atoi tiene que pensar en eso. Al codigo ascii de los digitos si le restamos el numero ascii del '0' vamos a obtener un numero entre 0 y 9 que es el numero correspodiente al digito.

Ahora usando matimatica e iterando sobre la cadena de caracteres podemos crear el numero de la sigueinte forma
numero = numero * 10 + digito;

en la variable numero vamos llevando el numero que se va formando. y en la variable digito es el numero que representa el digito leido de la forma en que te dije.

Código C++:
Ver original
  1. numero = 0;
  2. for(i=0;cadena[i] != '\0';i++)
  3.       numero = numero * 10 + (cadena[i] - '0');

Etiquetas: numero, pasar, caracteres
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 15:26.