boost::trim

提供: C++入門
移動: 案内検索
スポンサーリンク


Boost String Algorithms Library の boost::trim の使い方です。

読み方

trim
とりむ

概要

C++ 標準ライブラリの std::string の機能が貧弱であるため、 Boost String Algorithms Library で補います。

boost::trim は、文字列の前後の文字を除去できます。

たとえば、文字列の前後に空白があるときに、空白を取り除くといった処理で利用できます。

"    foo    " -> "foo"

ヘッダファイル

#include <boost/algorithm/string.hpp>

空白を取り除く例

ソースコード

boost_trim.cpp

#include <string>
#include <iostream>
#include <boost/algorithm/string.hpp>
 
int
main (int argc, char *argv[])
{
        std::string s("    foooo   ");
 
        boost::trim (s);
 
        std::cout << "[" << s << "]" << std::endl;
 
        return (0);
}

コンパイル

g++ -I/usr/local/include boost_trim.cpp

実行例

% ./a.out
[foooo]

文字列の前後の複数の種類の文字を取り除く例

ソースコード

boost_trim_if.cpp

#include <string>
#include <iostream>
#include <boost/algorithm/string.hpp>
 
int
main (int argc, char *argv[])
{
        std::string s("(foooo)");
 
        boost::trim_if (s, boost::is_any_of("()") );
 
        std::cout << "[" << s << "]" << std::endl;
 
        return (0);
}

コンパイル

g++ -I/usr/local/include boost_trim_if.cpp

実行例

% ./a.out
[foooo]

さまざまな文字を取り除く例

ソースコード

文字列の前後にいろいろな文字を含めてみます。

boost_trim_if2.cpp

#include <string>
#include <iostream>
#include <boost/algorithm/string.hpp>
 
int
main (int argc, char *argv[])
{
        std::string s("( **#foooo**#) ");
 
        boost::trim_if (s, boost::is_any_of("()*# ") );
 
        std::cout << "[" << s << "]" << std::endl;
 
        return (0);
}

コンパイル

g++ -I/usr/local/include boost_trim_if2.cpp

実行例

このように、boost::is_any_of で指定した文字が除去されました。

[foooo]

関連項目




スポンサーリンク