我想创建一个允许用户创建密码和用户名的程序。但是,密码必须介于6到10个字符之间。我如何限制字符输入?另外,如果我希望密码包含大写字母怎么办?
到目前为止看看这个程序,让你知道我想要做什么(注意:我知道程序本身显然未完成但我只是想给你一个视觉效果):
#include <iostream>
#include <string>
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "--------------------------------------------------------------\n";
std::cout << " Welcome to the ECE!! Password Proram!\n";
std::cout << "Username rules: must be 5-10 characters long with no space\n";
std::cout << "Password rules: must be 6+ characters long\n";
std::cout << "Must contain one uppercase letter and one number but no space\n";
std::cout << "--------------------------------------------------------------\n";
//Let's get our password!
std::string username;
std::string password;
const int
//use a do while loop for input validation
do {
std::cout << "Enter your username: ";
std::cin >> username; //add input validation
} while ();
std::cout << "Enter your password:";
std::cin >> password;
return 0;
}
答案 0 :(得分:0)
要限制字符输入,您需要检查输入长度是否介于6到10个字符之间。 (我不知道在10个字符后切断输入的方法)你会做类似
的事情start: // A label to direct where the program should go when goto is called.
while(password.length() > 10 || password.length() < 5)
{
std::cout << "The password must be between 5 and 10 characters inclusive." << endl;
std::cin >> password;
}
// To check if there is a capital letter
bool foundUpperLetter = false;
for(int i = 0; i < password.length(); i++)
{
if(foundUpperLetter == true)
break;
if('A' <= password[i] && password[i] <= 'Z')
foundUpperLetter = true;
}
if(!foundUpperLetter)
{
std::cout << "You did not include an uppercase letter in your input. Please try again." << endl;
goto start; // Will make the program go back to label start.
}
您还可以向上一部分添加更多代码,以检查密码所需的其他属性。
资料来源:为学校和个人享受编码15个月。如果有更好的办法或者你知道如何在10个字符后切断输入,请添加你自己的答案
答案 1 :(得分:0)
由于你正在使用std :: string,你可以在获得用户输入并检查大小是否在5&amp; 5的范围内之后使用password.size()。 10.如果不是,只需重新查询用户另一个密码即可。这最好在while循环中完成。 以下是更高级别的一些代码的示例:
do{
std::cout << "Enter your password:";
std::cin >> password;
}while (password.size() < 6 || password.size() > 10)
您已经使用用户名做了类似的事情,所以如果您打算询问密码,我会感到有点困惑。
答案 2 :(得分:0)
在概念层面:您可以接受字符串输入,检查长度和其他属性(即包含一个大写字母),将其用于进一步操作。如果不符合以下条件,请要求用户重新输入信息。