gpt4 book ai didi

C++ 用户输入限制

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:29 25 4
gpt4 key购买 nike

我目前正在开发一个程序,并考虑是否可以对用户输入实现另一个限制。我现在所做的限制是用户只允许输入字母和空格,不接受任何输入的回车也不会被接受。

cout<<"Input customer's lastname\t\t: ";
getline(cin,lname);
if(lname.find_first_not_of("abcdefghijklmnopqrstuvwxyz ")!=string::npos)
{
cout<<"You can only input alpha here!\n";
cin.clear();
goto p1;
}
else if(lname.empty())
{
cout<<"Please enter your lastname!\n";
cin.clear();
goto p1;
}

我想要的另一个限制是如果用户输入全是空格,程序也会显示一条消息。其次,我想知道如果用户像 (de la Cruz) 那样正确地输入,是否有可能检测到输入,单词应该只用一个空格分隔,如果没有,将显示另一条消息。我想不出该怎么做,我已经做了一些研究,但我找不到与 C++ 类似的东西。我不知道这是否可行,因为我刚刚开始学习 C++,或者我可能根本没有足够的逻辑。 :(

最佳答案

我在检查空格方面提供了一些帮助。

bool has_only_spaces(const std::string& str) 
{
return str.find_first_not_of (' ') == str.npos;
}

bool has_two_consecutive_spaces(const std::string& str)
{
for (unsigned int i = 1; i < str.length(); i++)
{
if ((str[i - 1] == str[i]) && (str[i] == ' '))
{
return true;
}
}
return false;
}

int main()
{
std::string lname;
std::cout << "Input customer's last name: ";
getline(std::cin, lname);
if (has_only_spaces(lname) || has_two_consecutive_spaces(lname))
{
std::cout << "Not a valid input" << std::endl;
std::cin.clear();
}
}

关于C++ 用户输入限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com