string中replace的使用(c++)
1.被替换位置:index往后count个字符--------------->str.replace(index,count,s); |
函数原型:string &replace(size_t pos,size_t len,const &str)
注意:当count=0时,可以作为插入使用,此处不举例,下面有一个类似的,见案例3
例:(n≠0)
string str = "0123453789";
cout << "被替换之前的字符串---------->" << str << endl;
str.replace(6,2,"67");
cout << "被替换之后的字符串---------->" << str << endl;
结果:
2.被替换位置:pos往后len长度,替换位置subpos往后sublen长度--------------->str.replace(pos,len,s,subpos,sublen) |
函数原型:string &replace(size_t pos,size_tlen,const string &str,size_t subpos,size_t sublen)
例:
string str = "0123453789";
cout << "被替换之前的字符串---------->" << str << endl;
str.replace(6,2,"1236789",3,2);
cout << "被替换之后的字符串---------->" << str << endl;
结果:
3.在指定位置插入n个字符’--------------->str.replace(pos,len,n,c) |
函数原型:string &replace(size_t pos, size_t len, size_t n, char c)
注意:当n=0时,可以作为插入使用
例:(n=0)
string str = "0123453789";
cout << "被替换之前的字符串---------->" << str << endl;
str.replace(2,0,5,'A');
cout << "被替换之后的字符串---------->" << str << endl;
结果:
4.迭代器--------------->和上面的类似,有四种,下面以第一种为例 |
函数原型:1)string &replace(const_iterator it1,const_iterator it2,const string&str)
2)string &replace(const_iterator it1,const_iterator it2,const char* cch)
3)string &replace(const_iterator it1,const_iterator it2,const char* cch,size_tn)
4)string &replace(const_iterator it1,const_iterator it2,size_t n,char c)
例:
string str = "0123456";
cout << "替换前的字符串----------->" << str << endl;
string str1 = "789";string::iterator it= str.begin();
str.replace(it, it+2, str1);
cout << "替换后的字符串----------->" << str << endl;
结果: