如何检查用户输入仅包含字母



我如何检查存储在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。

相关内容

  • 没有找到相关文章

最新更新