[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
トラックバックはありません.