只适用于 string 类型的操作
string 类型提供了容器类型不支持其他几种操作:
substr 函数,返回当前 string 对象的子串。
append 和 replace 函数,用于修改 string 对象。
一系列 find 函数,用于查找 string 对象。
substr 操作
|
s.substr(pos,n) |
返回一个 string 类型的字符串,它包含 s 中从下标 pos开始的 n 个字符 |
|
s.substr(pos) |
返回一个 string 类型的字符串,它包含从下标 pos 开始到s 末尾的所有字符 |
|
s.substr() |
返回 s 的副本 |
使用 substr 操作可在指定 string 对象中检索需要的子串。我们可以给substr 函数传递查找的起点和一个计数器。该函数将生成一个新的 string 对象,包含原目标 string 对象从指定位置开始的若干个字符(字符数目由计数器决定,但最多只能到原 string 对象的最后一个字符):
string s("hello world");
// return substring of 5 characters starting at position 6
string s2 = s.substr(6, 5); // s2 = world
可选择另一种方法实现相同的功能:
// return substring from position 6 to the end of s
string s3 = s.substr(6); // s3 = world
append 和 replace 函数
修改 string 对象的操作
|
s.append(args) |
将 args 串接在 s 后面。返回 s 引用 |
|
s.replace(pos,len,args) |
删除 s 中从下标 pos 开始的 len 个字符,用 args指定的字符替换之。返回 s 的引用在这个版本中,args 不能为 b2,e2 |
|
s.replace(b, e, args) |
删除迭代器 b 和 e 标记范围内所有的字符,用 args替换之。返回 s 的引用在这个版本中,args 不能为 s2,pos2,len2 |
append 和 replace 操作的参数:args
|
s2 |
string 类型的字符串 s2 |
|
s2, pos2, len2 |
字符串 s2 中从下标 pos2 开始的 len2 个字符 |
|
cp |
指针 cp 指向的以空字符结束的数组 |
|
cp, len2 |
cp 指向的以空字符结束的数组中前 len2 个字符 |
|
n, c |
字符 c 的 n 个副本 |
|
b2, e2 |
迭代器 b2 和 e2 标记的范围内所有字符 |
append 操作提供了在字符串尾部插入的捷径:
string s("C++ Primer"); // initialize s to "C++ Primer"
s.append(" 3rd Ed."); // s == "C++ Primer 3rd Ed."
// equivalent to s.append(" 3rd Ed.")
s.insert(s.size(), " 3rd Ed.");
replace 操作用于删除一段指定范围的字符,然后在删除位置插入一组新字符,等效于调用 erase 和 insert 函数。
// starting at position 11, erase 3 characters and then insert "4th"
s.replace(11, 3, "4th"); // s == "C++ Primer 4th Ed."
// equivalent way to replace "3rd" by "4th"
s.erase(11, 3); // s == "C++ Primer Ed."
s.insert(11, "4th"); // s == "C++ Primer 4th Ed."
s.replace(11, 3, "Fourth"); // s == "C++ Primer Fourth Ed."
在这个例子中,删除了 3 个字符,但在同一个位置却插入了 6 个字符。

浙公网安备 33010602011771号