只适用于 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 个字符。

posted @ 2018-05-06 14:30  刘-皇叔  阅读(203)  评论(0)    收藏  举报