valid number

Validate if a given string is numeric.

Some examples:
“0” => true
“ 0.1 “ => true
“abc” => false
“1 a” => false
“2e10” => true
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

bool isNumber(const char *s) {
while(*s == ' ') s++;//消除空格
if(*s == '+' || *s == '-') s++;
//检测小数点
int n_nm, p_nm;
for(n_nm = 0, p_nm =0; (*s >= '0' && *s <= '9')||(*s == '.'); s++){
if(*s == '.') p_nm++;
else if(*s >= '0' && *s <= '9') n_nm++;
}
if(p_nm > 1 || n_nm < 1) return false;
//检测e
if(*s == 'e' || *s == 'E'){
n_nm = 0;
s++;
if(*s == '+' || *s == '-')s++;
while(*s >= '0' && *s <= '9'){
n_nm++;
s++;
}
if(n_nm < 1) return false;
}
//消除空格
while(*s == ' ')s++;
return *s == 0;
}