C ++ one liner for“由数字组成的字符串”

时间:2017-02-12 19:25:03

标签: c++ c++11

我正在寻找一个简短(和快速)的代码来检查一个字符串是否只包含数字,特别是寻找一个衬里。这是我的临时代码:

bool IsNumber(const std::string& str)
{
    int i = 0;
    for( ; i<str.size() && isdigit(str[i]); ++i);

    return ( i == str.size() );
}

1 个答案:

答案 0 :(得分:6)

使用std::all_ofisdigit

#include <algorithm>
#include <cctype>
//..
bool allDigits = (!str.empty() && std::all_of(str.begin(), str.end(), ::isdigit));

编辑:添加了空字符串的检查。