C++ 如何将用户输入与严格排序的字符串列表进行比较?

标签 c++ arrays

我正在尝试创建一个搜索数组函数,其中我有一个字符串列表并接受用户输入。然后我将用户输入与数组中的字符串进行比较,并输出与输入的确切顺序匹配的任何字符串。我不知道从哪里开始。像这样:

数组:“this”、“is”、“a”、“test”

用户输入:“t”

输出应该是“this”和“test”

这是我目前所拥有的:

string arr[6] = {"hello", "this", "is", "a", "test", "string"};
vector<string> words;
for (int i=0; i<5; i++) {
    if (a.find(arr[i]) != string::npos) {
        words.push_back(arr[i]);
    }
}

for (int i=0; i<words.size(); i++) {
    cout << words[i] << endl;
}

目前它只搜索完全匹配。我怎样才能达到上述场景?

最佳答案

改变这个

if (a.find(arr[i]) != string::npos) 

if (arr[i].find(a) != string::npos) 

您将在字符串列表中逐一搜索您的用户字符串。

关于C++ 如何将用户输入与严格排序的字符串列表进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236431/

相关文章:

c++ - 查询从内存映射文件中检索到的 Rtree 时出现段错误

c++ - 错误 : Invalid use of incomplete type struct Subject; error: forward declaration of struct Subject

c++ 映射类作为键 : compare function with recursive one

php - 如何访问已转换为对象的数组的属性/值?

c++ - 如何静态断言多个类的公共(public)属性

javascript - 使用自动完成功能过滤对象内的数组

javascript - 如何使用 lodash _groupBy

c - 如何创建 const 结构数组

java - 如何在 Android Studio 中使用 Java 中自己的对象创建数组。

c++ - 从字符串中删除前导和尾随空格