// 功能:跳过字符串前导空白与正负符号
// ih: 输入字符串
// cnt: 输入字符个数
const char* __SkipLeadSignBlank(const char ih, unsigned int cnt)
{
const char *s = ih, *h = ih;
do {
const auto c = *s;
if (('-') == c) continue;
if (('+') == c) continue;
if (::isblank(c)) continue;//(c == (' ')) || (c == ('\t'))
if (0 == c) return NULL;
break;
} while (++s, unsigned int(s - h) < cnt);
return s;
}
// 功能:检测输入字符串是否为合法的包含正负的数字文本
// ih: 输入字符串
// cnt: 输入字符个数
bool isInteger(const char* ih, unsigned int cnt)
{
if (0 == ih) return false;
if (0 == cnt) return false;
// 跳过合法的乱七八糟头
auto s = __SkipLeadSignBlank(ih, cnt);
if (s == nullptr) return false;
// 检验是否为数字
const char *h = ih;
do {
const auto c = *s;
if (::isdigit(c)) continue;
if (0 == c) break;
return false;
} while (++s, unsigned int(s - h) < cnt);
return true;
}