Cita:
Iniciado por kutcher Pues si es en ese plan dejo mi propuesta haciendo uso de la función
strtol para variar :
Código C++:
Ver original......................
printf("Numero = %d\n", numero
); .................................
[
Bien por recordar el usa de
strol, un poco rebuscado pero efectivo.
Cita:
Iniciado por kutcher leosansan tienes un problema es tus códigos en las lineas :
Código C++:
Ver originalif ( cadena [0] == '-' || cadena [0] == '+' ) ++i;
¡¡¡¡Thanks¡¡¡, y sorry, se me escapo el flag:
Código C++:
Ver originalint EsNumero( char* cadena ) {
int i , flag = 0 ;
for ( i = 0 ; cadena [ i ] ; i++ ) {
if ( cadena [0] == '-' || cadena [0] == '+' && flag == 0 ) ++i , flag = 1 ;
if ( ! isdigit ( cadena
[i
] ) ) return 0 ; }
return 1 ;
}
Y puestos a experimentar
:
Código C++:
Ver originalint EsNumero( char *cadena ) {
while ( *cadena
== '-' || *cadena
== '+' || isdigit ( *cadena
) && *cadena
!= 0 ) *cadena
++ ; return ( strlen ( cadena
) != 0 ) ? 0 : 1 ; }
Y
¡¡¡más fuerte¡¡¡ , sin usar ningún bucle. A ver quien supera la complejidad del que viene, je je :
Código C++:
Ver originalint EsNumero ( char *num ) {
return ( n
== ( Strlen
= ( num
[0] == '-' || num
[0] == '+') ? strlen ( num
) - 1 : strlen ( num
) ) ) ? 1 : 0 ; }
¡¡¡Saluditos!!!