La stringa passata a Convert(char*),nn ha fine linea '\n'
è fatta cosi' |1 2 3 4 5 6 y 7 f '\0'|
codice:
#define PLUS '+'
#define MINUS '-'
#define POINT '.'
#define INT 1
#define REAL 2
#define STRING 3
#define IS_DIGIT(x) ((x>='0')&&(x<='9'))
.....
...
.....
int Convert(char* a)
{
int flag=0,cont=1;
if((*a==PLUS)||(*a==MINUS)||IS_DIGIT(*a))
{
flag=1;
a++;
while(((*a)!='\0')&&flag)
{
if(IS_DIGIT(*a))
a++;
else if((*a==POINT)&&(cont<2))
{
cont++;
a++;
}
else
flag=0;
}
}
if((cont==2)&&flag)
return REAL;
else if(flag)
return INT;
else
return STRING;
}
N.B. Nn tiene conto del caso in cui 1 numero reale
comincia col la virgola POINT-->.474764
Deve sempre cominciare con 1 zero-->0.474764
TheEnd