Declarations
String& strip(String& s, const std::locale& loc = std::locale()); String strip_copy(const String& s, const std::locale& loc = std::locale()); String& strip_if(String& s, PredicateFunc f); String strip_copy_if(const String& s, PredicateFunc f); String& lstrip(String& s, const std::locale& loc = std::locale()); String lstrip_copy(const String& s, const std::locale& loc = std::locale()); String& lstrip_if(String& s, PredicateFunc f); String lstrip_copy_if(const String& s, PredicateFunc f); String& rstrip(String& s, const std::locale& loc = std::locale()); String rstrip_copy(const String& s, const std::locale& loc = std::locale()); String& rstrip_if(String& s, PredicateFunc f); String rstrip_copy_if(const String& s, PredicateFunc f); String& chop(String& s); String chop_copy(const String& s); String& chop_if(String& s, PredicateFunc f); String chop_copy_if(const String& s, PredicateFunc f); String& chomp(String& s); String chomp_copy(const String& s);
Overview
strip() は,文字列の前後に存在する空白文字を除去します.lstrip(),rstrip() はそれぞれ,文字列の先頭,末尾に存在する空白文字を除去します.chop() は末尾の文字を1文字除去し,chomp() は末尾の改行文字を除去します.
strip_copy(),lstrip_copy(),rstrip_copy(),chop_copy(),chomp_copy() は,引数として指定された文字列を直接変更せず,コピーした文字列を変更します. また,strip_if(),lstrip_if(),rstrip_if() は,それぞれ文字列の前後,先頭, 末尾に存在する文字に対して PredicateFunc で指定された Functor が真を返す時のみ, その文字を除去します.
尚,Declarations においては template < ... > の部分を省略していますが, 単語の先頭が大文字になっているものはテンプレート引数として渡される型です(ただし, String は std::basic_string<CharT, Traits>).
Example
#include <string> #include <iostream> #include "clx/salgorithm.h" int main(int argc, char* argv[]) { std::string s = "*****Hello, world!*****"; std::cout << "original: " << s << std::endl; std::cout << "strip: " << clx::strip_copy_if(s, clx::is_any_of("*")) << std::endl; std::cout << "lstrip: " << clx::lstrip_copy_if(s, clx::is_any_of("*")) << std::endl; std::cout << "rstrip: " << clx::rstrip_copy_if(s, clx::is_any_of("*")) << std::endl; std::cout << "chop: " << clx::chop_copy_if(s, clx::is_any_of("*")) << std::endl; return 0; }
Result original: *****Hello, world!***** strip: Hello, world! lstrip: Hello, world!***** rstrip: *****Hello, world! chop: *****Hello, world!****