24/06/2015, 00:48
|
| | 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. |