// Boost string_algo library example file ---------------------------------// // Copyright Pavol Droba 2002-2003. Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org for updates, documentation, and revision history. #include #include #include #include #include #include #include #include using namespace std; using namespace boost; int main() { cout << "* Split Example *" << endl << endl; string str1("abc-*-ABC-*-aBc"); cout << "Before: " << str1 << endl; // Find all 'abc' substrings (ignoring the case) // Create a find_iterator typedef find_iterator string_find_iterator; for(string_find_iterator It= make_find_iterator(str1, first_finder("abc", is_iequal())); It!=string_find_iterator(); ++It) { cout << copy_range(*It) << endl; // shift all chars in the match by one transform( It->begin(), It->end(), It->begin(), bind2nd( plus(), 1 ) ); } // Print the string now cout << "After: " << str1 << endl; // Split the string into tokens ( use '-' and '*' as delimiters ) // We need copies of the input only, and adjacent tokens are compressed vector ResultCopy; split(ResultCopy, str1, is_any_of("-*"), token_compress_on); for(unsigned int nIndex=0; nIndex