2014-03-25 79 views
0

我需要尋找像一個的std :: string「堆棧溢出」一鍵字和返回刺中發現的所有行返回匹配的行。如何通過線SEACH線和C++

所以我的std :: string可能是這樣的,

ghfhfhfhf dghfhf dtgd \n 
dgdhfghfgfh stack overflow \n 
stack overflow dgdfgdgdg \n 
dgdgh dgdrgdrgdg \n 
stack overflow dffdbdb \n 

注意,你是多條線路在此的std :: string爲 「\ n」,表示行尾。我是一個將搜索「堆棧溢出」的函數,它將返回一個包含所有匹配行的sting向量。

例如,迴歸向量的樣子,

v[0] dgdhfghfgfh stack overflow \n 
v[1] stack overflow dgdfgdgdg \n 
v[2] stack overflow dffdbdb \n 

我們的目標是要知道有多少行有命中,什麼都該行的樣子。有人可以幫助我嗎?

這需要在Linux Redhat上運行。

回答

4

你可以把每一行成std::string,並利用find("stack overflow"),搜索字符串。一旦發現,將其推入載體:

while (std::getline(file, line)) 
{ 
    if (line.find("stack overflow") != line.end()) 
     v.push_back(line); 
} 

以上也適用於字符串,如果你換你的字符串轉換成std::stringstream和使用,在地方file