Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 让if语句只查看字符串中的第一个单词_C++_String_If Statement_Vector - Fatal编程技术网

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

C++ 让if语句只查看字符串中的第一个单词,c++,string,if-statement,vector,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(

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

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

    if(myvec[j] == "<event>") {  //erase all instances of "<event>"
        myvec.erase(myvec.begin()+j);
    }
}
for(int j=0;j
但是,现在我需要删除向量中仅以单词开头的一些元素(这些元素在第一个关键字“wgt”之后都有不同的垃圾)

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

有什么想法吗


提前感谢!

第一行将以“abc”开头的字符串放在末尾,第二行将它们从向量中删除

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

“第一个关键字”是什么?这应该清楚地讨论为什么OP的擦除循环错得如此厉害!我终于让它工作了:)