boost::string_algo详解4——trim_if,trim_copy_if,trim_xxxx_if,trim_xxxx_copy_if

函数的部分原型

[cpp]   view plain copy print ?
  1. template<typename SequenceT, typename PredicateT>  
  2.   void trim_if(SequenceT & Input, PredicateT IsSpace);  
  3.   
  4. template<typename OutputIteratorT, typename RangeT, typename PredicateT>  
  5.   OutputIteratorT  
  6.     trim_copy_if(OutputIteratorT Output, const RangeT & Input,  
  7.                                  PredicateT IsSpace);  
  8. template<typename SequenceT, typename PredicateT>  
  9.   SequenceT   
  10.     trim_copy_if(const SequenceT & Input, PredicateT IsSpace);  
  11.   
  12. template<typename SequenceT, typename PredicateT>  
  13.   void trim_left_if(SequenceT & Input, PredicateT IsSpace);  
  14.   
  15. template<typename OutputIteratorT, typename RangeT, typename PredicateT>  
  16.   OutputIteratorT  
  17.     trim_left_copy_if(OutputIteratorT Output, const RangeT & Input,  
  18.                       PredicateT IsSpace);  
  19. template<typename SequenceT, typename PredicateT>  
  20.   SequenceT  
  21.     trim_left_copy_if(const SequenceT & Input, PredicateT IsSpace);  

例子

[cpp]   view plain copy print ?
  1. void test_string_trim_if()  
  2. {  
  3.     std::string str = "abcd!@#$%^efghi1234xyz";  
  4.   
  5.     std::string str1 = boost::trim_left_copy_if(str, boost::is_alnum());  
  6.     assert(str1 == "!@#$%^efghi1234xyz");  
  7.     std::string str2 = boost::trim_right_copy_if(str, boost::is_alnum());  
  8.     assert(str2 == "abcd!@#$%^");  
  9.     std::string str3 = boost::trim_copy_if(str, boost::is_alnum());  
  10.     assert(str3 == "!@#$%^");  
  11.   
  12.     boost::trim_left_if(str, boost::is_alnum());  
  13.     assert(str == "!@#$%^efghi1234xyz");  
  14.     boost::trim_right_if(str, boost::is_alnum());  
  15.     assert(str == "!@#$%^");  
  16.   
  17.     // 如果是二元函数,可以做如下处理  
  18.     std::string str2nd("###GoodBye ChongQing!######");  
  19.     boost::trim_if(str2nd, bind2nd(std::equal_to<char>(), '#'));  
  20.     assert(str2nd == "GoodBye ChongQing!");  
  21.   
  22.     // 当然用下面的方法也可以实现如上的功能  
  23.     std::string strAny("###Hello Fuzhou!######");  
  24.     boost::trim_if(strAny, boost::is_any_of("#"));  
  25.     assert(strAny == "Hello Fuzhou!");  
  26. }  


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值