2012-05-11 26 views
5

Tôi đã viết mã này để chia nhỏ một chuỗi chứa các từ có nhiều khoảng trống và/hoặc tab thành một chuỗi ký tự chỉ chứa các từ.tăng chuỗi chia tách để loại bỏ dấu cách trong các từ

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  

Tôi đã chờ đợi một sản lượng

cONtainS 
SoMe 
CApiTaL 
WORDS 

nhưng im geting đầu ra với không gian như một phần tử trong strVec tức

cONtainS 











SoMe 



CApiTaL 
WORDS 

Trả lời

31

Bạn cần phải thêm một tham số cuối cùng với giá trị boost::token_compress_on , theo số documentation:

boost::algorithm::split(strVec,str,is_any_of("\t "),boost::token_compress_on); 
Các vấn đề liên quan