我正在寻找一个简短(和快速)的代码来检查一个字符串是否只包含数字,特别是寻找一个衬里。这是我的临时代码:
bool IsNumber(const std::string& str)
{
int i = 0;
for( ; i<str.size() && isdigit(str[i]); ++i);
return ( i == str.size() );
}
答案 0 :(得分:6)
使用std::all_of和isdigit
:
#include <algorithm>
#include <cctype>
//..
bool allDigits = (!str.empty() && std::all_of(str.begin(), str.end(), ::isdigit));
编辑:添加了空字符串的检查。