@liuhonghao1。 AC代码,求关
查看原帖
@liuhonghao1。 AC代码,求关
1601800
Shenma908楼主2025/6/26 12:52

密码校验程序

以下是一个 C++ 实现的密码校验程序,用于检查输入的字符串是否符合特定规则。

代码实现

#include <bits/stdc++.h>
using namespace std;

/**
 * 检查密码字符串是否符合规则:
 * 1. 长度 6-12 字符
 * 2. 至少包含:
 *    - 大写字母(A-Z) 或 小写字母(a-z)
 *    - 数字(0-9)
 *    - 特殊符号(!@#$)
 * 3. 不允许其他字符
 */
bool check(string str) {
    if (str.size() < 6 || str.size() > 12) {
        return false;
    }
    
    bool hasUpper = false, hasLower = false;
    bool hasDigit = false, hasSpecial = false;
    
    for (int i = 0; i < str.size(); i++) {
        if (str[i] >= 'a' && str[i] <= 'z') {
            hasLower = true;
        }
        else if (str[i] >= 'A' && str[i] <= 'Z') {
            hasUpper = true;
        }
        else if (str[i] >= '0' && str[i] <= '9') {
            hasDigit = true;
        }
        else if (str[i] == '!' || str[i] == '@' || 
                 str[i] == '#' || str[i] == '$') {
            hasSpecial = true;
        }
        else {
            return false;  // 非法字符
        }
    }
    
    return hasSpecial && (hasUpper + hasLower + hasDigit >= 2);
}

int main() {
    string input;
    cin >> input;
    string current;
    
    for (int i = 0; i <= input.size(); i++) {
        if (input[i] == '\0' || input[i] == ',') {
            if (check(current)) {
                cout << current << endl;
            }
            current.clear();
        }
        else {
            current += input[i];
        }
    }
    
    return 0;
}
2025/6/26 12:52
加载中...