您好我试图检查字符串是否包含至少一个字母,但在此阶段不起作用.如果我输入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)
任何建议谢谢你们!
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.非常旧的编译器和标准库可能根本没有这个功能.
| 归档时间: |
|
| 查看次数: |
1389 次 |
| 最近记录: |