1.replace
注意:replace()会把原来字符串改变,也会返回一个改变后的字符串
使用replace(begin(),end(),“sd”)时,表示将整个字符串替换,s.begin()表示字符串的第一位,s.end()表示字符串的最后一位的下一位?
replace(begin(),end()-1,“sd”)表示将整个字符串除最后一位用"sd"替换
replace(begin(),begin()+n,“sd”)表示从0位开始,包括第0位,将长度为n的子串用"sd"替换
可以通过replace()函数给字符串添加前缀和后缀:
添加前缀:replace(s.begin(),s.begin()+0,“sd”),(这个+0必须要)
添加后缀:replace(s.end(),s.end()+0,“sd”)
不过好像并没有什么卵用…直接+重载连接就行了 - -
1)用string 或C-string 代替操作string 中从 _Pos1 开始的 _Num1 个字符
basic _ string& replace( size _ type _Pos1 ,size _ type _Num1 , const value _ type* _Ptr );
basic _ string& replace(size _ type _Pos1 ,size _ type _Num1 ,const basic _ string _Str );
string a,b;
string s ( "AAAAAAAA" );
string s1p ( "BBB" );
const char* cs1p = "CCC";
a = s.replace ( 1 , 3 , s1p ); // s= "ABBBAAAA"
b = s.replace ( 5 , 3 , cs1p ); //
2.insert()
string的成员函数insert有以下多种重载:
*string &insert(int p0, const char s);——在p0位置插入字符串s
string &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符
string &insert(int p0,const string &s);——在p0位置插入字符串s
string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字符串s从pos开始的连续n个字符
string &insert(int p0, int n, char c);//在p0处插入n个字符c
iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置
void insert(iterator it, const_iterator first, const_iteratorlast);//在it处插入从first开始至last-1的所有字符
void insert(iterator it, int n, char c);//在it处插入n个字符c