密码字符串比较[C ++]

时间:2016-03-13 05:30:30

标签: c++

尝试使用密码验证方法以允许用户使用我的程序。

我想知道有人会如何实现这样的代码,允许程序比较两个字符串,记下所有字母和数字以确保所有内容匹配,然后允许用户在成功输入后访问程序控件密码。

因此,例如,如果密码是" h3llo"和某人输入"他"程序将输出一条错误消息,指出密码不正确。

以下是我的开始:

void checkPassword() {
    cout << "Enter password: ";
    string password = "H3110W0r1d";
    int length = password.length();
    int i;
    string input;
    cin >> input;

    for (i = 0; i < length; i ++) {
        if ((input[i].compare(length[i]))) == 1) {
            if ((input[i].compare(length[i])) == 0) {
                cout << "Error! Wrong password!";
            } else {
    cout << "Welcome!";
    }
}

我已经尝试了很多不同的方法,但是,我似乎无法让它发挥作用。对我做错了什么的帮助?

1 个答案:

答案 0 :(得分:1)

只需逐一比较。

void checkPassword() {
    cout << "Enter password: ";
    string password = "H3110W0r1d";
    int length = password.length();
    int i;
    string input;
    bool ok = true;
    cin >> input;

    if (input.length() != password.length()) {
        ok = false;
    } else {
        for (i = 0; i < length; i ++) {
            if (input[i] != password[i]) {
                ok = false;
                break;
            }
        }
    }
    if (ok) {
        cout << "Welcome!";
    } else {
        cout << "Error! Wrong password!";
    }
}

或更简单

void checkPassword() {
    cout << "Enter password: ";
    string password = "H3110W0r1d";
    string input;
    cin >> input;

    if (input == password) {
        cout << "Welcome!";
    } else {
        cout << "Error! Wrong password!";
    }
}