int is_valid_number(char str[])
{
int cnt, resp;
#define SIZE sizeof( str ) / sizeof( char )
resp = 0;
for (cnt = 0; cnt < SIZE; cnt++)
{
if ( isdigit(str[cnt]) )
{
printf("%d %c e digito\n", cnt, str[cnt]);
resp = 1;
}
else
{
printf("%d %c nao e digito\n", cnt, str[cnt]);
return(0);
}
}
printf("%d %s\n", resp, str);
return(resp);
}
O problema é que, ao executar com qualquer parâmetro, digamos 122, o resultado obtido é esse:
0 1 e digito
1 2 e digito
2 2 e digito
3 nao e digito
Aparentemente, ele está pegando o terminador \0 e o interpretando. O que eu poderia fazer para que isso não ocorresse?
Grato.