科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件一种简单的批分字符串的办法

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:郑昀 来源:中国软件网 2008年3月31日

关键字: 字符串 批分 C++ C Linux

  • 评论
  • 分享微博
  • 分享邮件
一个小技巧,权当对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());

       }

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章