如何检查一组字符是否包含在C++的字符数组中

How to check if a set of characters are contained in a character array in C++?

本文关键字:字符 包含 C++ 数组 是否 一组 何检查 检查      更新时间:2023-10-16

这是我在stackoverflow的第一个问题。我希望找到我想要的东西。我正在尝试找到一种方法来检查一组字符是否属于数组。这是在课堂上问到的,我试图弄清楚,但输出中什么也没得到。

创建一个包含 10 个字符的数组,其中包含从 a 到 j 的字母。检查数组是否包含 a、b、c 字符值。如果是这样,则让用户输入名称,如果输入的名称为 TEST显示测试5次。

我知道 if 语句有问题。请指教!谢谢:)

#include <iostream>
#include<string>
using namespace std;
int main()
{
    string name;
    char arr[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
    for (int x = 0; x < 10; x++)
    {
        if ((arr[x] == 'a') && (arr[x] == 'b') && (arr[x] == 'c'))
        {
            cout << "Enter a name" << endl;
            cin >> name;
            if (name == "TEST")
                for (int a = 0; a < 5; a++)
                    cout << "TEST" << endl;
        }
    }
    system("pause");
    return 0;
}

请参阅代码片段以了解:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string name;
    char arr[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
    bool found_a = false;
    bool found_b = false;
    bool found_c = false;
    for (int x = 0; x < 10; x++) {
        if( arr[x] == 'a' ) {
            found_a = true;
        } else if( arr[x] == 'b' ) {
            found_b = true;
        } else if( arr[x] == 'c' ) {
            found_c = true;
        }
        if(found_a == true && found_b == true && found_c == true) {
            cout << "Enter a name" << endl;
            cin >> name;
            if (name == "TEST") {
                for (int a = 0; a < 5; a++) {
                    cout << "TEST" << endl;
                }
            }
            break;
        }
    }
    system("pause");
    return 0;
}