验证字符串是否包含至少一个字母

lus*_*o92 -1 c++

您好我试图检查字符串是否包含至少一个字母,但在此阶段不起作用.如果我输入13它将继续而不给我错误,如果包含数字我只想要至少一个字母例如:Patrick1那没关系.

这是我正在尝试的代码:

 void setName(string b) {
        cout << "Please enter your name:" << endl;
        getline(cin, b);
        for (int i =0; i<b.size(); i++) {
            if  ((b[i] >= 'A' && b[i] <= 'Z') ||
                   (b[i] >= 'a' && b[i] <= 'z')) {
                cout << "Error" << endl;
                cout << "Please enter your name:" << endl;
                getline(cin, b);

            }
Run Code Online (Sandbox Code Playgroud)

任何建议谢谢你们!

Som*_*ude 5

C++标准库有许多很好的算法函数,例如std::any_of,true如果传入的范围中的任何元素导致谓词返回,则会调用一个函数true.

可以::isalpha像这样使用

if (std::any_of(std::begin(b), std::end(b), ::isalpha))
{
    // There is at least one alphabetic character in the string
}
Run Code Online (Sandbox Code Playgroud)

重要说明:std::any_of函数是在C++ 11中引入的.有些编译器需要特殊的标志来启用C++ 11.非常旧的编译器和标准库可能根本没有这个功能.