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