判断字符串为数字、小数

 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 }
原文地址:https://www.cnblogs.com/crsky/p/5519648.html