C加加检测一段密码,密码必须含有八个字符,必须包含数字与字母,必须包含至少两个数字,使用void函数检测
时间: 2024-10-08 15:06:15 浏览: 32
输入一个不少于六位的密码,并判断密码强度
在C++中,你可以创建一个名为`validatePassword`的void函数来检测给定的密码是否符合上述条件。以下是简单的函数实现思路:
```cpp
#include <string>
#include <cctype>
// 定义一个bool函数checkPassword,用于检查密码是否符合条件
bool checkPassword(const std::string& password) {
// 检查长度
if (password.length() != 8) {
return false;
}
// 初始化计数器,用于检查数字和大写字母的数量
int digitCount = 0, uppercaseLetterCount = 0;
// 遍历字符串
for (char c : password) {
// 如果是数字
if (isdigit(c)) {
digitCount++;
// 如果已经找到两个数字,则不需要继续检查,直接返回true
if (digitCount >= 2) break;
}
// 如果是大写字母
else if (isupper(c)) {
uppercaseLetterCount++;
}
}
// 检查是否有两个或更多数字以及至少一个大写字母
return digitCount >= 2 && uppercaseLetterCount >= 1;
}
// void 函数版本
void validatePassword(const std::string& password) {
if (!checkPassword(password)) {
std::cout << "Invalid password. It must be 8 characters long, contain at least two digits and one uppercase letter.\n";
} else {
std::cout << "Valid password.\n";
}
}
// 示例使用
int main() {
std::string testPasswords[] = {"123AbcD", "passWord!", "Test123"};
for (const auto& password : testPasswords) {
validatePassword(password);
}
return 0;
}
```
阅读全文