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 }