[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> ... 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()); } |