用C++编写程序:某网站为了加强用户账号的安全性,在用户设置密码时提出以下限制:密码长度必须大于等于6位,小于等于16位,密码只能由大写字母(AZ)、小写字母(az)和数字0~9)组成,并且密码中必须包含以上所有三种字符。例如,”Cpp2019”是合法密码,”123456”则是非法的密码。编写函数isValidPassword(char * password),按上述规则对用户密码password的合法性进行判断,合法则返回true,非法则返回false。 输入格式: 输入在一行中给出一个长度不超过30的字符串。 输出格式: 1或者0,字符串是合法的密码则输出1,否则输出0。 输入样例: Cpp2019 输出样例: 1
时间: 2023-11-22 16:53:42 浏览: 97
下面是一份C++的代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
bool isValidPassword(char *password) {
int length = strlen(password); // 密码长度
bool hasUpper = false; // 是否包含大写字母
bool hasLower = false; // 是否包含小写字母
bool hasDigit = false; // 是否包含数字
// 检查密码中是否包含大写字母、小写字母和数字
for (int i = 0; i < length; i++) {
if (password[i] >= 'A' && password[i] <= 'Z') {
hasUpper = true;
}
else if (password[i] >= 'a' && password[i] <= 'z') {
hasLower = true;
}
else if (password[i] >= '0' && password[i] <= '9') {
hasDigit = true;
}
}
// 检查密码是否符合要求
if (length >= 6 && length <= 16 && hasUpper && hasLower && hasDigit) {
return true;
}
else {
return false;
}
}
int main() {
char password[31];
cin >> password;
if (isValidPassword(password)) {
cout << "1";
}
else {
cout << "0";
}
return 0;
}
```
我们首先定义了一个函数 `isValidPassword`,用于判断密码是否符合要求。在函数中,我们首先计算了密码的长度,并定义了三个布尔变量,分别表示密码中是否包含大写字母、小写字母和数字。然后我们遍历了密码中的每个字符,如果是大写字母,则将 `hasUpper` 设为 `true`,如果是小写字母,则将 `hasLower` 设为 `true`,如果是数字,则将 `hasDigit` 设为 `true`。
接下来,我们检查密码是否符合要求。如果密码长度在6到16之间并且包含大写字母、小写字母和数字三种字符,则返回 `true`,否则返回 `false`。
在 `main` 函数中,我们首先读入用户输入的密码,然后调用 `isValidPassword` 函数判断密码是否合法。如果合法,则输出1,否则输出0。
阅读全文