// 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 using namespace std; using namespace boost; int main() { cout << "* Predicate Example *" << endl << endl; string str1("123xxx321"); string str2("abc"); // Check if str1 starts with '123' cout << "str1 starts with \"123\": " << (starts_with( str1, string("123") )?"true":"false") << endl; // Check if str1 ends with '123' cout << "str1 ends with \"123\": " << (ends_with( str1, string("123") )?"true":"false") << endl; // Check if str1 contains 'xxx' cout << "str1 contains \"xxx\": " << (contains( str1, string("xxx") )?"true":"false") << endl; // Check if str2 equals to 'abc' cout << "str2 equals \"abc\": " << (equals( str2, string("abc") )?"true":"false") << endl; // Classification functors and all predicate if ( all(";.,", is_punct() ) ) { cout << "\";.,\" are all punctuation characters" << endl; } // Classification predicates can be combined if ( all("abcxxx", is_any_of("xabc") && !is_space() ) ) { cout << "true" << endl; } cout << endl; return 0; }