Проверка ввода пользователя с помощью строкового массива

0
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?

Теги:
string
input

2 ответа

1

Попробуйте использовать этот код, если вы хотите найти совпадение, если они находятся на одной позиции:

for(int i = 0; i < code.length(); ++i)
{
    if(code[i] == user[i]) return true;    // Match found here.
}
return false;
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
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню