表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

思路:若开始有+-号,string++;+.123是正确的;.只能出现一次;e,E之后可以紧跟+-号,但之后不能出现.;e,E后必须有数字。

 1 class Solution {
 2 public:
 3     bool isNumeric(char* string)
 4     {
 5         if(string==NULL) return false;
 6         int flagpoint=0;
 7         int flagE=0;
 8         int flagnum=0;
 9         int flagsign=0;
10         if(*string=='+'||*string=='-')
11             string++;
12         while(*string!=''){
13             if(*string>='0'&&*string<='9'){
14                 flagnum=1;
15                 string++;
16                 if(flagE!=0)
17                     flagE++;
18                 continue;
19             }
20             if(flagpoint==0&&*string=='.'){
21                     string++;
22                     flagpoint++;
23                     continue;
24                 }
25             if(flagnum==1&&flagE==0){
26                 if(*string=='e'||*string=='E'){
27                     if(*(string+1)=='-'||*(string+1)=='+'){
28                         string++;
29                     }
30                     string++;
31                     flagE++;
32                     flagpoint++;
33                     continue;
34                 }
35             }
36             return false;
37         }
38         if(flagE==1) return false;
39         return true;
40     }
41 
42 };
原文地址:https://www.cnblogs.com/zl1991/p/4799720.html