剑指offer---表示数值的字符串
class Solution { public: bool isNumeric(char* string) { if(string == NULL) return false; if(*string == '+' || *string == '-') string++; if(*string == '\0') return false; scanDigit(&string); bool flag = true; if(*string != '\0') { if(*string == '.') { string++; scanDigit(&string); if(*string == 'e' || *string == 'E') flag = isE(&string); } else if(*string == 'e' || *string == 'E') //整数 flag = isE(&string); else flag = false; } return flag && (*string == '\0'); //此处考虑1.2.3这个例子就知道为什么要加后一项 } void scanDigit(char **string) { while(**string != '\0' && **string >='0' && **string <='9') ++(*string); } bool isE(char **string) { ++(*string); if(**string == '+' || **string == '-') ++(*string); if(**string == '\0') return false; scanDigit(string); return (**string == '\0') ? true : false; } };