Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/06/2015, 00:48
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Convertir caracter a entero

Si hechas un vistazo a la tabla ASCII, verás que los caraceres 0x30 a 0x39 se corresponden con dígitos numéricos.

Lo que puedes hacer es recorrer la cadena y verificar que cada carácter de la misma se encuentre dentro de ese rango. Con un for y un if lo tienes hecho. También tienes funciones para saber si un carácter es numérico o no, pero desconozco el grado de libertad que tienes para usar este tipo de funciones.

Con lo anterior ya puedes verificar que el dato introducido sea un entero. Si ahora lo quieres convertir a un número, recorres la cadena y, para cada caracter, realizas la operación 'numero = numero * 10 + (caracter - 0x30)'. Básicamente lo que estás haciendo es calcular el valor numérico que se corresponde con el carácter actual ('1' o 0x31 debería devolver 1 porque 0x31-0x30=1). Por supuesto, esto funcionará si numero es de tipo int.

Un saludo.