Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/10/2015, 16:42
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Validación de numeros (if-else-switch) en programa C

Ya que usas atoi en el segundo ejemplo... ¿por qué no usar strlen en el primero?

aunque tampoco es que sea imprescindible conocer la longitud de la cadena.

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char* argv[])
  4. {
  5.    char cadena[10];
  6.    char* ptr;
  7.    int numero=0,error=0;
  8.  
  9.    printf("Introduce un valor numerico: ");
  10.    scanf("%s",cadena);
  11.    for(ptr=cadena,*ptr!=0 && error==0;++ptr)
  12.    {
  13.       error = (*ptr<'0' || *ptr>'9');
  14.       numero = (error)? 0 : numero*10+*ptr-'0';
  15.    }
  16.  
  17.    if(error==1)
  18.       printf("Introduce solo numeros");
  19.    else
  20.       printf("El numero es: %d",numero);
  21.    return 0;
  22. }

Nota: Estoy respondiendo desde el movil, si el código no compila avisadme y lo corrijo.

Un saludo.