首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC++

善用 Boost.Tokenizer 輕鬆實作多重分隔符字串分割

     編輯:VC++

情境說明

電話號碼或代碼常以分號、逗號、中文分號、中文逗號等混合分隔,例如:

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

需將此類字串依四種分隔符一次切割,傳統 strtok 或手寫解析較繁瑣,Boost.Tokenizer 提供極簡潔解法。

核心程式碼

#include <boost/tokenizer.hpp>
#include <string>

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

// 定義分隔符集合
boost::char_separator<char> sep(";,;,");

// 建立 tokenizer
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
tokenizer tokens(_sTokenFaxNumber, sep);

// 迭代取得各欄位
for (tokenizer::iterator it = tokens.begin(); it != tokens.end(); ++it)
{
    _bstr_t bstrSingleFax((*it).c_str()); // 轉為所需型別
    // 處理單一號碼...
}

優點總結

  • 支援多字元分隔符集合,無需多次切割。
  • 自動處理連續分隔符、首尾分隔符產生的空欄位。
  • 標頭檔唯實作,無需連結庫,輕量好用。

此技巧致敬 Boost 庫的強大與靈活。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved