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

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

一个小技巧,权当对Great Boost的致敬。

批分的具体规则:

电话号码或者其他的什么,都可以以下列四种符号分隔:

u 分号,如:1391067;62963517,或者1391067;62963;。

u 逗号,如:1391067,62963517,或者1391067,62963,。

u 中文分号,如:1391067;62963,或者1391067;629637;。

u 中文逗号,如:1391067,62963,或者1391067,629617,。

也可以混合这四种符号,如:

1391067,6617;62980;1234,5678;9900,0099;

。诸如此类。

这种方式的批分,可以用boost库的tokenizer很容易的做到。

批分代码:

#include <boost/tokenizer.hpp>

#include <string>

...

std::string _sTokenFaxNumber("629780;010620,01091293;1234,5678;8989");

typedef boost::tokenizer<boost::char_separator<char> >

tokenizer;

// 批发的分隔符号,枚举各种符号:

boost::char_separator<char> sep(";,;,");

tokenizer tokens(_sTokenFaxNumber, sep);

tokenizer::const_iterator itBegin = tokens.begin();

tokenizer::const_iterator itEnd = tokens.end();

tokenizer::iterator tok_iter;

for (tok_iter = itBegin;

tok_iter != itEnd;

++tok_iter)

{

_bstr_t bstrSingleFax((*tok_iter).c_str());

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有