我需要在std :: string中搜索“ stack stackover”之类的关键字,并返回找到string的所有行。
所以我的std :: string可能看起来像这样,
ghfhfhfhf dghfhf dtgd \n
dgdhfghfgfh stack overflow \n
stack overflow dgdfgdgdg \n
dgdgh dgdrgdrgdg \n
stack overflow dffdbdb \n
Run Code Online (Sandbox Code Playgroud)
注意,此std :: string中有多行,其中“ \ n”表示行尾。我正在做一个搜索“堆栈溢出”的函数,它将返回一个包含所有匹配行的字符串向量。
例如,返回向量看起来像
v[0] dgdhfghfgfh stack overflow \n
v[1] stack overflow dgdfgdgdg \n
v[2] stack overflow dffdbdb \n
Run Code Online (Sandbox Code Playgroud)
目的是了解命中了多少行以及该行的外观。有人可以帮我吗?
这需要在Linux Redhat上运行。
您可以将每一行放入中std::string,然后使用来find("stack overflow")搜索子字符串。一旦找到,将其推入向量:
while (std::getline(file, line))
{
if (line.find("stack overflow") != line.end())
v.push_back(line);
}
Run Code Online (Sandbox Code Playgroud)
如果将字符串包装到a中std::stringstream并代替,则上述方法也适用于字符串file。
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |