对于我正在编写的程序,我需要在字符串数组中找到特定单词的位置,但我不知道如何。这是我制作的代码,但它不起作用:
int location;
string input;
cout << "Type your name" << endl;
cin >> input;
for (int i = 0; i <= count; i++)
{
call_DB[i].name;
if (call_DB[i].name == input)
{
location = i;
}
}
该代码有什么问题,我该怎么做才能修复它?谢谢。
答案 0 :(得分:1)
尝试std::find_if
,在数组中搜索满足提供预测功能的项目。
auto iter = std::find_if(call_DB, call_DB + count, [&input](const YOUR_CALL_DB_TYPE& item ){ return item.name == input; });
if(iter == call_DB + count)
printf("Not found\n");
else
printf("Found: %s\n", iter->name.c_str());
如果找到此类项目,则索引是距数组库size_t index = iter - call_DB;
答案 1 :(得分:1)
您可以使用std::find_if
获取数组元素的迭代器:
auto it = std::find_if(std::begin(db), std::end(db), [&name](auto const& x) {
return x.name == name;
});
如果你想将索引放入数组:
auto index = it - std::begin(db);