2012-05-11 105 views
5

我已經編寫了此代碼以將包含具有多個空格和/或製表符的單詞的字符串拆分爲只包含單詞的字符串向量。boost字符串拆分以消除字詞中的空格

1 #include<iostream>                
2 #include<vector>                 
3 #include<boost/algorithm/string/split.hpp>          
4 #include<boost/algorithm/string.hpp>            
5 int main()                  
6 {                    
7  using namespace std;               
8                     
9  string str("cONtainS   SoMe CApiTaL WORDS");      
10                     
11  vector<string> strVec;              
12  using boost::is_any_of;              
13                     
14  boost::algorithm::split(strVec, str, is_any_of("\t "));            
15                     
16  vector<string>::iterator i ;             
17                     
18  for(i = strVec.begin() ; i != strVec.end(); i++)        
19   cout<<*i<<endl;               
20                     
21  return 0;                 
22 }                    
23  

我所期待的輸出

cONtainS 
SoMe 
CApiTaL 
WORDS 

,但即時通訊歌廳與空間輸出作爲strVec元素即

cONtainS 











SoMe 



CApiTaL 
WORDS 

回答

31

您需要添加一個最後的參數和值boost::token_compress_on ,按照documentation

boost::algorithm::split(strVec,str,is_any_of("\t "),boost::token_compress_on); 
相關問題