Declarations
String& replace(String& s, const String& sch, const String& rep, unsigned int nth = 1); String replace_copy(const String& s, const String& sch, const String& rep, unsigned int nth = 1); String& replace_all(String& s, const String& sch, const String& rep); String replace_all_copy(const String& s, const String& sch, const String& rep);
Overview
replace() は,文字列中に存在する n 番目の文字列 sch を文字列 rep に置換します.これに対して,replace_all() は文字列中に存在する全ての文字列 sch を文字列 rep に置換します.replace_copy(),replace_all_copy() は,引数として指定された文字列を直接変更せず,コピーした文字列を変更します.
尚,Declarations においては template < ... > の部分を省略していますが, 単語の先頭が大文字になっているものはテンプレート引数として渡される型です(ただし, String は std::basic_string<CharT, Traits>).
Example
#include <iostream> #include <string> #include "clx/salgorithm.h" int main(int argc, char* argv[]) { std::string s = "apple apple apple apple apple"; std::cout << "original: " << s << std::endl; std::cout << "replace from apple to orange" << std::endl; std::cout << "replace (4th): " << clx::replace_copy(s, "apple", "orange", 4) << std::endl; std::cout << "replace_all: " << clx::replace_all_copy(s, "apple", "orange") << std::endl; return 0; }
Result original: apple apple apple apple apple replace from apple to orange replace (4th): apple apple apple orange apple replace_all: orange orange orange orange orange