我如何检查存储在std::string
中的用户输入以有效,以便仅包含所有字母,没有数字或符号?
std::string name;
std::cout << "Hello, enter your name:n";
std::cin >> name;
//check if the name was entered correctly after user input
我应该使用正则言论吗?如果是这样,我应该如何有效地使用它?
我应该使用正则吗?
否。您在这里不需要。
只需使用算法函数 std::all_of
检查字符串中的所有字母 std::isalpha
。。
std::all_of(std::begin(name), std::end(name),
[](const char alphabet) noexcept -> bool { return std::isalpha(alphabet); });
完整的示例代码看起来像:(请参阅LIVE(
#include <iostream>
#include <string>
#include <algorithm> // std::all_of
#include <cctype> // std::isalpha
int main()
{
std::string name;
std::cin >> name;
std::cout << std::boolalpha << std::all_of(std::begin(name), std::end(name),
[](const char alphabet) noexcept -> bool { return std::isalpha(alphabet); });
return 0;
}
样本输入:iamnumber4
输出:false
您可以使用 std :: Regex 检查输入是否很好
您还可以制作自己的功能如果只有数字,请检查每个名称的caracter。