[英]C++ How can I compare a user input to a list of string with strict ordering?
我正在尝试创建一个搜索数组函数,其中有一个字符串列表,并接受用户输入。 然后,我将用户输入与数组中的字符串进行比较,并按照输入的确切顺序输出与任何字符串匹配的任何字符串。 我不确定从哪里开始。 像这样:
数组:“ 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)
您将在字符串列表中一一搜索用户字符串。
您在此处发布的代码中存在逻辑错误: if (a.find(arr[i]) != string::npos) {
,它在输入字符串中搜索数组中的单词,但您想查找根据我的理解,输入字符串就是数组中的单词。
除此之外,我宁愿使用std::array
并for each
循环使用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.