判断字符串为数字、小数

 1 static int GetStringType(const char *src)
 2 {
 3     // is '-' or digit ?
 4     if (*src == '-' || isdigit(*src))
 5     {
 6         // "1"
 7         if (isdigit(*src) && !*(src + 1))
 8             return 1;
 9 
10         ++src; // next char
11 
12         // "-a" or "0a"
13         if (!isdigit(*src) && *src != '.')
14             return 0;
15 
16         while (*src)
17         {
18             // "1." or "-1."
19             if (*src == '.')
20             {
21                 ++src; // next char
22 
23                 // we need a digit, "1." not a float
24                 if (!*src)
25                     return 0;
26 
27                 while (*src)
28                 {
29                     // "1.a"
30                     if (!isdigit(*src))
31                         return 0;
32                     ++src;
33                 }
34                 // float value
35                 return 2;
36             }
37 
38             // "10a" not a integer
39             if (!isdigit(*src))
40                 return 0;
41 
42             ++src; // next char
43         }
44         // integer value
45         return 1;
46     }
47 
48     return 0;
49 }

 

posted @ 2016-05-23 13:28  Akatsuki-  阅读(528)  评论(0编辑  收藏  举报