サンプルの動作確認バージョン [GCC4.4/1.41.0] [VC9/1.41.0]
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>
using namespace std;
int main()
{
string message = "This is a pen";
// 文字列messageを空白文字で区切ってvに格納
vector<string> v;
boost::algorithm::split( v, message, boost::algorithm::is_space() );
// vの要素を"-"で結合して表示
cout << boost::algorithm::join( v, "-" ) << endl;
}
This-is-a-pen
文字列処理関数を色々集めたライブラリです。文字列を配列に分割したり結合したりする split, joinや、部分文字列を含むかどうか検査するstarts_withやends_withやfind_*他 便利関数いろいろ。 ひとつひとつの関数は std::string のメソッドやSTLのアルゴリズムを組み合わせて直接実現できなくもないんですが、 関数としてまとまってると便利ですね。
あと、Range の考え方を使って構成されたライブラリだという点にも注目です。 検索系アルゴリズムの結果がRangeで返されるので、検索結果に対してさらに処理を適用する場合などに便利。