Boost String Algorithms Library 函数详解二 (predicate)

Table 11.3. Predicates

 

Algorithm name Description Functions
starts_with Check if a string is a prefix of the other one starts_with()
istarts_with()
ends_with Check if a string is a suffix of the other one ends_with()
iends_with()
contains Check if a string is contained of the other one contains()
icontains()
equals Check if two strings are equal equals()
iequals()
all Check if all elements of a string satisfy the given predicate all()


基础示例:

 1       // starts
 2      assert(starts_with( " boost_python-vc71-mt-1_33.dll " " boost " ));
 3      assert( ! starts_with( " boost_python-vc71-mt-1_33.dll " " BOOST " ));
 4      assert(istarts_with( " boost_python-vc71-mt-1_33.dll " " BOOST " ));
 5       // ends
 6      assert(ends_with( " boost_python-vc71-mt-1_33.dll " " .dll " ));
 7      assert( ! ends_with( " boost_python-vc71-mt-1_33.dll " " .DLL " ));
 8      assert(iends_with( " boost_python-vc71-mt-1_33.dll " " .DLL " ));
 9       // contains    
10      assert(contains( " boost_python-vc71-mt-1_33.dll " " python " ));
11      assert( ! contains( " boost_python-vc71-mt-1_33.dll " " PYTHON " ));
12      assert(icontains( " boost_python-vc71-mt-1_33.dll " " PYTHON " ));
13       // equals
14      assert(equals( " boost " " boost " ));
15      assert( ! equals( " boost " " BOOST " ));
16      assert(iequals( " boost " " BOOST " ));
17       // Empty string test
18      assert(starts_with( " boost_python-vc71-mt-1_33.dll " "" ));
19      assert(ends_with( " boost_python-vc71-mt-1_33.dll " "" ));
20      assert(contains( " boost_python-vc71-mt-1_33.dll " "" ));
21       // all
22      assert(all( " \x20\t\n\r " , is_space())); 
23      assert(all( " \x20\t\n\r " , is_classified(std::ctype_base::space)));
24      assert(all( " \x20\t\n\r " , is_any_of( " \x20\t\n\r " )));
25      assert(all( " abcde " , is_from_range( ' a ' , ' e ' )));
26      assert(all( " abcde " , is_from_range( ' a ' , ' z ' )));
27      assert( ! all( " abcde " , is_from_range( ' b ' , ' c ' )));
28      assert(all( " abc __ de " , is_from_range( ' a ' , ' z ' ||  is_space()  ||  is_any_of( " _ " )));
29      


在前面都没有详细说明is_xxxx是哪些函数,下面列出:

 1                is_space  //  空格 
 2                is_alnum  //  字母和数字 
 3                is_alpha  //  字母 
 4                is_cntrl  //  控制字符 
 5                is_digit  //  数字 
 6                is_graph  //  可打印字符(不含空格) 
 7                is_lower  //  小写 
 8                is_print  //  可打印字符(含空格) 
 9                is_punct  //  标点 
10                is_upper  //  大写 
11                is_xdigit  //  16进制数字
12                is_any_of  //  
13                is_from_range  //

你可能感兴趣的:(algorithms)