12345678910111213141516171819
#include <vector> #include <string> #include <boost/algorithm/string.hpp> int main() { std::string str1("hello abc-*-ABC-*-aBc goodbye"); typedef std::vector< std::string > split_vector_type; split_vector_type SplitVec; // #2: Search for tokens boost::split( SplitVec, str1, boost::is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" } for ( unsigned i = 0; i < SplitVec.size(); ++i ) { std::cout << "\"" << SplitVec[i] << "\"\n"; } return 0; }
1234567
"hello abc" "" "" "ABC" "" "" "aBc goodbye"
123
for (unsigned int i = 0; i < SplitVec.size(); ++i ) { if(!SplitVec[i].empty()) std::cout << "\"" << SplitVec[i] << "\"\n"; }
12
splitVec.erase( std::remove_if( splitVec.begin(), splitVec.end(), boost::bind( &std::string::empty, _1 ) ), splitVec.end() );