c++ string的详细用法(14)replace()

string a="1234abcd5678efgh";
string b="ABCD";

1.在string字符串的某一个位置开始长度为m的字符被替换另一个(string)字符串
replace(size_t n,size_t m,const char* str);
a.replace(4,3,"替换"; //结果为 a="1234替换d5678efgh";

replace(size_t n,size_t m,const string& str);
a.replace(4,3,b); //结果为 a="1234ABCDd5678efgh";

replace(const_iterator n,const_iterator m,const char* str);
a.replace(a.begin()+3,a.begin()+6,"替换");
//结果为 a="123替换cd5678efgh";

replace(const_iterator n,const_iterator m,const string& str);
a.replace(a.begin()+5,a.end()-3,b);
//结果为 a="1234aABCDfgh";

2.在string字符串的某一个位置开始长度为m的字符被替换另一个字符串的前k位
replace(size_t n,size_t m,const char* str,size_t k);
a.replace(6, 3, "THJKL", 2); //结果为 a="1234abTH678efgh";

replace(const_iterator n,const_iterator m,const char* str,size_t k);
a.replace(a.begin() + 6, a.end() - 3, "THJKL", 2);
//结果为 a="1234abTHfgh";

3.在string字符串的某一个位置开始长度为m的字符被替换为另一个string字符串从i位置长度为j的字符
replace(size_t n,size_t m,const string& str,size_t i,size_t j);
a.replace(6, 3, b, 1, 3); //结果为 a="1234abBCD678efgh";

4.在string字符串中的某一个位置开始长度为m的字符被替换为k个相同的字符
replace(size_t n,size_t m,size_t k,char c);
a.replace(6, 3, 5, '@'); //结果为 a="1234ab@@@@@678efgh";

replace(const_iterator n,const_iterator m,size_t k,char c);
a.replace(a.begin()+6, a.end()-3, 5, '>');
//结果为 a="1234ab>>>>>fgh";

5.在string字符串中的某一个字符区间被替换为另一个string字符串字符区间
template<typename T>
replace(const_iterator n,const_iterator m,T first,T last);
a.replace(a.begin() + 6, a.end() - 3, b.begin(), b.end() - 1);
//结果为 a="1234abABCfgh";

6.replace(const_iterator n,const_iterator m,initializer_list<char> il);
//暂时不知道如何使用此函数

发布了20 篇原创文章 · 获赞 62 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40630246/article/details/103654508