字符串内容的修改
可以通过使用多个函数修改字符串的值。例如 assign(),operator=,erase(),交换(swap),插入(insert)等。另外,还可通过 append() 函数添加字符。
下面逐一介绍各成员函数的使用方法。
assign()函数
使用 assign() 函数可以直接给字符串赋值。该函数既可以将整个字符串赋值给新串,也可以将字符串的子串赋值给新串。其在 basic_string 中的原型为:
basic_string& assign (const E*s); //直接使用字符串赋值
basic_string& assign (const E*s, size_type n);
basic_string& assign (const basic_string & str, size_type pos, size_type n);
//将str的子串赋值给调用串
basic_string& assign (const basic_string& str); //使用字符串的“引用”賦值
basic_string& assign (size_type n, E c) ; //使用 n个重复字符賦值
basic_string& assign (const_iterator first, const_iterator last); //使用迭代器赋值
以上几种方法在例 1 中均有所体现。请读者参考下述代码。
【例 1】
- #include <iostream>
- #include <string>
- using namespace std;
- int main()
- {
- string str1 ("123456");
- string str;
- str.assign (str1); //直接赋值
- cout << str << endl;
- str.assign (str1, 3, 3); //赋值给子串
- cout << str << endl;
- str.assign (str1,2,str1.npos);//赋值给从位置 2 至末尾的子串
- cout << str << endl;
- str.assign (5,'X'); //重复 5 个'X'字符
- cout << str << endl;
- string::iterator itB;
- string::iterator itE;
- itB = str1.begin ();
- itE = str1.end();
- str.assign (itB, (--itE)); //从第 1 个至倒数第 2 个元素,赋值给字符串 str
- cout << str << endl;
- return 0;
- }
operator= 函数
operator= 的功能就是赋值。
erase()函数
erase() 函数的原型为:
iterator erase (iterator first, iterator last);
iterator erase (iterator it);
basic_string& erase (size_type p0 = 0, size_type n = npos);
erase() 函数的使用方法为:
str.erase (str* begin(), str.end());
或 str.erase (3);
swap()函数
swap()函数的原型为:
void swap (basic_string& str);
swap()函数的使用方法为:
string str2 ("abcdefghijklmn");
str.swap (str2);
insert()函数
insert () 函数的原型为:
basic_string& insert (size_type p0 , const E * s); //插人 1 个字符至字符串 s 前面
basic_string&