Ver Mensaje Individual
  #20 (permalink)  
Antiguo 20/11/2014, 13:23
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 10 meses
Puntos: 32
Respuesta: do while false

He creado una función siguiendo la idea de kutcher y comparando con la de leosansan veo los siguientes situaciones:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4.  
  5. int es_numero( char *s )
  6. {
  7.   char *p = s;
  8.   strtol(p, &s, 10);
  9.   return (s - p) == strlen(p);
  10. }
  11.  
  12. int EsNumero ( char *num ) {
  13.     int n = log10 ( abs ( atoi ( num ) ) ) + 1 , Strlen;
  14.     return ( n == ( Strlen = ( num [0] == '-' ||  num [0] == '+')  ? strlen ( num ) - 1 : strlen ( num ) ) ) ? 1 : 0 ;
  15. }
  16.  
  17. int main() {
  18.     char a[] = " +123";
  19.     char b[] = "+123 ";
  20.     char c[] = "+123*";
  21.     printf("%d %d\n", es_numero(a), EsNumero(a));
  22.     printf("%d %d\n", es_numero(b), EsNumero(b));
  23.     printf("%d %d\n", es_numero(c), EsNumero(c));
  24.     return 0;
  25. }
Ante esto me pregunto, ¿hasta que punto un string debe considerarse un entero?

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils