Boost tokenizer 一种简单的批分字符串的办法

boost::tokenizer是用于切割字符串的,类似于Java里面的StringTokenizer。

使用方法如下

1。 typedef 一个自己 tokenizer,(由于boost::tokenizer的声明太长了,typedef比较方便一些)
e.g   typedef boost::tokenizer<boost::char_separator<char> >  tokenizer;
 
2。定义一个分割符,比如 “竖杠”,另外注意boost::keep_empty_tokens,这个参数,这是boost的tokenizer定义的策略,有两种drop_empty_tokens 和keep_empty_tokens,不同在于对于空tokens的处理。比如:
使用drop_empty_tokens 时,"s234||345",两个连续的'|'会被当作一个处理
使用keep_empty_tokens 时,"s234||345",两个连续的'|'会切割出一个空字符串


e.g boost::char_separator<char> sep('|', 0, boost::keep_empty_tokens);


3。定义一个tokens实例,str是要切分的字符串,sep是分割符 e.g tokenizer tokens(str, sep);
 
4。定义一个iterator来访问每个被分割的字符串 e.g  tokenizer::iterator tok_iter = tokens.begin();

 
#include <boost/tokenizer.hpp>
void test_tokenizer()
{
    string s("This is  , a ,test!");
    boost::tokenizer<> tok(s);
     for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg)
{
         cout << *beg << "\n";
     }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值