码迷,mamicode.com
首页 > 其他好文 > 详细

表示数值的字符串

时间:2015-09-11 01:31:40      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+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!=\0){
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 };

 

表示数值的字符串

标签:

原文地址:http://www.cnblogs.com/zl1991/p/4799720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!