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 }