查找向量中的一个单词的行
问题描述:
试图通过向量中的一个单词找到一行。查找向量中的一个单词的行
例如:
在文件中的一些数据,如:
CTRL +一动,发现
Ctrl + C复制,组
CTRL + z拿,给
所有字母都很小。
然后我试图读取矢量文件 - 这没关系
然后用户要输入:移动
**我想,如果用户输入move
,我发现矢量线(例如:擦除)*
但是我该怎么做,因为我的循环停在零,它只读取文件的第一个字符串?
代码如下:
void HotMap::test(std::string str)
{
std::string line;
std::vector<std::string> vec_keys;
std::string file_name_keys("read_keys.txt");
std::ifstream file_keys(file_name_keys, std::ios::in);
std::vector<std::string>::iterator iter_vec;
while (std::getline(file_keys, line))
{
for (auto & c : line) c = tolower(c);
vec_keys.push_back(line);
}
for (int i = 0; i < 3; i++)
{
vec_keys[i].find(str);
if (vec_keys[i].find(str))
{
std::string found_str;
std::cout << "Found:" << vec_keys[i];
//Just help to find the line.....
break;
}
}
}
答
查看string::find
裁判:
返回值
第一个匹配的第一个字符的位置。如果未找到匹配项,则函数返回
string::npos
。
所以,试试这个来代替:
if (vec_keys[i].find(str) != std::string::npos)
std::cout << "Found:" << vec_keys[i];
提示:什么是'向量:: find'的返回类型? – user463035818
@ tobi303噢,是的,它是索引。但是你能帮助你找到正确的方法吗? – X21
@ tobi303你的意思是'string :: find',对吧? – gsamaras