[C++] boost::tokenizer + boost::escaped_list_separator
std::string をトークン列に分解して色々作業する場合,std::istrstream を使うのも手ですが,これでは引用符付きの文字列を分解することができません.
そんなときのお助けライブラリがありました.boost::tokenizer + boost::escaped_list_separator です.
#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>
using namespace std;
using namespace boost;
int main() {
string s = "Field 1 \'putting quotes around fields, allows commas\' \"Field 3\"";
tokenizer<escaped_list_separator<char> > tok(s, escaped_list_separator<char>("\\", " ", "\"\'"));
for(tokenizer<escaped_list_separator<char> >::iterator beg=tok.begin(); beg!=tok.end();++beg){
cout << *beg << "\n";
}
}
boost::escaped_list_separator 自体が複数の種類の引用符や区切り文字に対応しています.これでトークン分解が簡単にできます.
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2004111901
トラックバックはありません.