一個小技巧,權當對Great Boost的致敬。
批分的具體規則:
電話號碼或者其他的什麼,都可以以下列四種符號分隔:
分號,如:1391067;62963517,或者1391067;62963;。
逗號,如:1391067,62963517,或者1391067,62963,。
中文分號,如:1391067;62963,或者1391067;629637;。
中文逗號,如: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());
}