提升字符串拆分以消除单词中的空格

Vih*_*rma 8 c++ string boost split

我编写了这段代码,将包含许多空格和/或制表符的单词的字符串拆分为一个只包含单词的字符串向量.

#include<iostream>       
#include<vector>                        
#include<boost/algorithm/string/split.hpp>       
#include<boost/algorithm/string.hpp>                         
int main()                              
{                  
    using namespace std;                                     

    string str("cONtainS            SoMe    CApiTaL WORDS");       

    vector<string> strVec;              
    using boost::is_any_of;       

    boost::algorithm::split(strVec, str, is_any_of("\t "));       

    vector<string>::iterator i ;       

    for(i = strVec.begin() ; i != strVec.end(); i++)       
        cout<<*i<<endl;              

    return 0;                                             
}
Run Code Online (Sandbox Code Playgroud)

我期待一个输出

cONtainS
SoMe
CApiTaL
WORDS
Run Code Online (Sandbox Code Playgroud)

但是在空间中输出空间作为strVec中的一个元素即

cONtainS











SoMe



CApiTaL
WORDS
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 36

boost::token_compress_on根据文档,您需要使用值添加最终参数:

boost::algorithm::split(strVec,str,is_any_of("\t "),boost::token_compress_on); 
Run Code Online (Sandbox Code Playgroud)