如何在c++中逐行搜索并返回匹配的行
How to search line by line and return matched lines in C++
我需要在std::string中搜索像"stack overflow"这样的关键字,并返回找到string的所有行。
所以std::string可能是这样的
ghfhfhfhf dghfhf dtgd n
dgdhfghfgfh stack overflow n
stack overflow dgdfgdgdg n
dgdgh dgdrgdrgdg n
stack overflow dffdbdb n
注意,在这个std::string中有多行,其中"n"表示行结束。我正在制作一个函数来搜索"堆栈溢出",它将返回一个包含所有匹配行的字符串向量。
例如,返回向量如下:
v[0] dgdhfghfgfh stack overflow n
v[1] stack overflow dgdfgdgdg n
v[2] stack overflow dffdbdb n
目标是知道有多少行有命中,以及这行是什么样子的。有人能帮我一下吗?
这需要在Linux Redhat上运行。
您可以将每一行放入std::string
,并使用find("stack overflow")
搜索子字符串。找到后,将其放入vector容器:
while (std::getline(file, line))
{
if (line.find("stack overflow") != line.end())
v.push_back(line);
}
以上也适用于字符串,如果你将字符串包装成std::stringstream
并使用它来代替file
。
相关文章:
- 如何从 std::vector 搜索和返回项目
- C++二叉搜索树模板从函数返回节点
- 返回不需要的值的二叉搜索程序
- Glob 搜索目录也会返回文件
- 在对象数组中搜索字符串并返回相应值的函数
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数
- 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- 返回二叉搜索树特定级别的节点数的函数
- 快速搜索链表未编译,需要返回语句
- 按扩展名过滤搜索文件会返回太多结果
- 如何使用二叉搜索返回姓氏(给定字符串)的第一个索引/出现次数?
- 二叉搜索功能始终返回 -1 值而不是索引
- C/C++ 从根位置搜索文件夹并返回绝对路径
- 搜索文本文件并返回等号后的值
- 返回 std::p air<const CustomClass &, bool> 用于搜索函数中的失败情况,当 CustomClass 是抽象基类时
- 这个树搜索功能让我发疯.它返回 NULL,但不知何故主函数中的值发生了变化
- 按属性搜索对象的向量并返回迭代器
- 在{8,4,6,2}中搜索4时,std::binary_search是否有任何实现将返回true
- 数组中的线性搜索返回意外结果
- 时间在二叉搜索树中返回 0