if语句只能查看字符串中的第一个单词

时间:2015-06-15 20:11:43

标签: c++ string if-statement vector

我有一个由字符串组成的向量,一些字符串有单个单词,一些有多个单词,有些有数字等。我有一个代码删除向量的元素如果整个字符串是一个特定的单词(“事件”) )完美运作:

for (int j = 0; j< myvec.size()-1; j++) {

    if(myvec[j] == "<event>") {  //erase all instances of "<event>"
        myvec.erase(myvec.begin()+j);
    }
}

然而,现在我需要删除向量中只有一个单词START的几个元素(这些元素在第一个关键词“wgt”之后都有不同的垃圾

我不知道如何让这个工作。我假设它将类似于上面的/ if循环,我只是不知道如何使if语句只查看字符串中的第一个单词。

有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

第一行将字符串以&#39; abc&#39;开头。最后,第二个从矢量中删除它们。

auto end_it = std::remove_if(myvec.begin(), myvec.end(), 
                   [](const string &str){ 
                     return str.find("abc") == 0 ;}) ;
myvec.erase(end_it, myvec.end()) ;