使用字符串数组检查用户输入

时间:2013-10-09 21:52:17

标签: c++ string input

string code[4] = {"G", "O", "B", "R"};
string colorPegs[6] = {"R", "B", "Y", "G", "O", "B"};
string userGuess;

    getline(cin,userGuess);

在我的问题中,这些是重要的代码行。

用户将输入4个字母,例如“BBYG”

如何创建一个for循环,用第一个代码字符检查用户输入的第一个字符,并查看它是否匹配?

例如:

字符串代码是GOBR

用户输入BBBR。在用户输入中,只有一个字母与代码匹配,这是第三个B,如何通过for循环检查?

2 个答案:

答案 0 :(得分:1)

尝试使用此代码,假设您希望在匹配时找到匹配项:

for(int i = 0; i < code.length(); ++i)
{
    if(code[i] == user[i]) return true;    // Match found here.
}
return false;

答案 1 :(得分:0)

试试这个:

#include <algorithm>

int main()
{
    std::string code{"GOBR"};
    std::string input;

    std::cin >> input;

    auto match = [&] (char c)
    {
        return std::find(code.begin(), code.end(), c) != code.end();
    };

    if (std::any_of(input.begin(), input.end(), match))
    {
        // match
    }
}