繁体   English   中英

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

[英]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::arrayfor each循环使用:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM