Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/03/2015, 04:51
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: código de validación

primero, esa funcion tiene algunas lagunas. ¿Que pasa si la cadena es mayor que el valor maximo o minimo permitidos para un long? Segun la ayuda dice que la funcion strtol retornará el valor maximo o minimo permitidos con lo que no avisa de que algo salio mal. ¿Y si metes caracteres no numericos? retorna 0 con lo que tu funcion saldria diciendo que el valor es 0. ¿Y que pasa si realmente has introducido 0? Es mucho mejor un condicional que vaya controlando caracter por caracter usando isdigit o comprobando que no sea menor que 0 ni mayor que 9 y que uses sprintf para la conversion ya que este retorna el numero de caracteres convertidos y es mas facil saber si falló. Para el caso de letras otro condicional y listo.