CLX C++ Libraries
Home >> salgorithm>> replace

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

example_replace.cpp

#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