Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2010, 11:02
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 1 mes
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');