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

Checking user input with string array

本文关键字:用户 输入 检查 数组 字符串      更新时间:2023-10-16
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 循环检查这一点?

尝试使用此代码,假设您想找到匹配项,如果它们处于同一位置:

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

试试这个:

#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
    }
}