string简单操作:
string s; |
定义一个新的空 string 对象,命名为 s。 |
string s(cp); |
定义一个新的 string 对象,用 cp 所指向的(以空字符 null 结束的)C 风格字符串初始化该对象。 |
string s(s2); |
定义一个新的 string 对象,并将它初始化为 s2 的副本。 |
is >> s; |
从输入流 is 中读取一个以空白字符分隔的字符串,写入 s。 |
os << s; |
将 s 写到输出流 os 中。 |
getline(is, s); |
从输入流 is 中读取一行字符,写入 s。 |
s1 + s2 |
把 s1 和 s2 串接起来,产生一个新的 string 对象。 |
s1 += s2 |
将 s2 拼接在 s1 后面。 |
关系操作符 |
相等运算(== 和 !=)以及关系运算(<、<=、> 和 >=)都可用于 string 对象的比较,等效于(区分大小写的)字典次序的比较。 |
string类型支持的顺序容器操作:
string类型不支持以绽放时操作容器,因此不能使用front、back和pop_back操作。
1. 支持typedef,包括迭代器类型。 |
2. 支持容器构造函数。 但是不包括只需要一个长度参数的构造函数。 |
3. 支持vector 容器所提供的添加元素的操作。 注意:无论vector 容器还是 string 类型都不支持 push_front 操作。 |
4. 支持容器大小操作。 |
5. 支持下标和 at 操作。但 string 类型不提供该表列出的 back和 front 操作。 |
6. 支持begin 和 end操作。 |
7. 支持erase 和 clear 操作。 但是 string 类型不入提供pop_back 或 pop_front 操作。 |
8. 支持容器的赋值操作。 |
9. 与 vector 容器的元素一样,string 的字符也是连续存储的。因此,string 类型支持capacity 和 reserve 操作。 |
构造string对象的其他方法:
string s(cp, n) |
创建一个 string 对象,它被初始化为 cp 所指向数组的前 n 个元素的副本。 |
string s(s2, pos2) |
创建一个 string 对象,它被初始化为一个已存在的 string 对象 s2 中从下标 pos2 开始的字符的副本。 |
string s(s2, pos2, len2) |
创建一个 string 对象,它被初始化为 s2 中从下标 pos2 开始的 len2 个字符的副本。如果 pos2 > s2.size(),则该操作未定义,无论 len2 的值是多少,最多只能复制 s2.size() - pos2 个字符。 |
注意:n、len2和pos2都是unsigned值。 |
修改string的方法:
与容器共有的string操作 |
|
s.insert(p, t) |
在迭代器 p 指向的元素之前插入一个值为 t 的新元素。返回指向新插入元素的迭代器。 |
s.insert(p, n, t) |
在迭代器 p 指向的元素之前插入 n 个值为 t 的新元素。返回 void。 |
s.insert(p, b, e) |
在迭代器 p 指向的元素之前插入迭代器 b 和 e 标记范围内所有的元素。返回 void。 |
s.assign(b, e) |
在迭代器 b 和 e 标记范围内的元素替换 s。对于 string 类型,该操作返回 s;对于容器类型,则返回 void。 |
s.assign(n, t) |
用值为 t 的 n 个副本替换 s。对于 string 类型,该操作返回 s;对于容器类型,则返回 void。 |
s.erase(p) |
删除迭代器 p 指向的元素。返回一个迭代器,指向被删除元素后面的元素。 |
s.erase(b,e) |
删除迭代器 b 和 e 标记范围内所有的元素。返回一个迭代器,指向被删除元素段后面的第一个元素。 |
string类型特有的版本 |
|
s.insert(pos, n, c) |
在下标为 pos 的元素之前插入 n 个字符 c。 |
s.insert(pos, s2) |
在下标为 pos 的元素之前插入 string 对象 s2 的副本。 |
s.insert(pos, s2, pos2, len) |
在下标为 pos 的元素之前插入 s2 中从下标 pos2 开始的 len 个字符。 |
s.insert(pos, cp, len) |
在下标为 pos 打元素之前插入 cp 所指向数组的前len 个字符。 |
s.insert(pos, cp) |
在下标为 pos 的元素之前插入 cp 所指向的以空字符结束的字符串副本。 |
s.assign(s2) |
用 s2 的副本替换 s。 |
s.assign(s2, pos2, len) |
用 s2 中从下标 pos2 开始的 len 个字符副本替换 s。 |
s.assign(cp, len) |
用 cp 所指向数组的前 len 个字符副本替换 s。 |
s.assign(cp) |
用 cp 所指向的以空字符结束的字符串副本替换 s。 |
s.erase(pos, len) |
删除从下标 pos 开始的 len 个字符。 |
除此特殊声明,上述所有操作都返回s的引用 |
只适用于string类型的操作:
子串操作 |
|
s.substr(pos. n) |
返回一个 string 类型的字符串,它包含 s 中从下标 pos开始的 n 个字符。 |
s.substr(pos) |
返回一个 string 类型的字符串,它包含从下标 pos 开始到s 末尾的所有字符。 |
s.substr() |
返回 s 的副本。 |
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 标记的范围内所有字符。 |
string类型的查找操作:
string类型的查找操作 |
||
s.find(args) |
在 s 中查找 args 的第一次出现。 |
|
s.rfind(args) |
在 s 中查找 args 的最后一次出现。 |
|
s.find_first_of(args) |
在 s 中查找 args 的任意字符的第一次出现。 |
|
s.find_last_of(args) |
在 s 中查找 args 的任意字符的最后一次出现。 |
|
s.find_first_not_of(args) |
在 s 中查找第一个不属于 args 的字符。 |
|
s.find_last_not_of(args) |
在 s 中查找最后一个不属于 args 的字符。 |
|
上述函数都有四个重载函数,string类型提供的find操作的参数 |
||
c, pos |
在 s 中,从下标 pos 标记的位置开始,查找字符 c。pos 的默认值为 0。 |
|
s2, pos |
在 s 中,从下标 pos 标记的位置开始,查找 string 对象 s2。pos 的默认值为 0。 |
|
cp, pos |
在 s 中,从下标 pos 标记的位置形参,查找指针 cp 所指向的 C 风格的以空字符结束的字符串。pos 的默认值为 0。 |
|
cp, pos, n |
在 s 中,从下标 pos 标记的位置开始,查找指针 cp 所指向数组的前 n 个字符。pos 和 n 都没有默认值。 |
string对象的比较:
string类型的compare操作 |
|
s.compare(s2) |
比较 s 和 s2。 |
s.compare(pos1, n1, s2) |
让 s 中从 pos 下标位置开始的 n1 个字符与 s2 做比较。 |
s.compare(pos1, n1, s2, pos2, n2) |
让 s 中从 pos1 下标位置开始的 n1 个字符与 s2 中从 pos2下标位置开始的 n2 个字符做比较。 |
s.compare(cp) |
比较 s 和 cp 所指向的以空字符结束的字符串。 |
s.compare(pos1, n1, cp) |
让 s 中从 pos1 下标位置开始的 n1 个字符与 cp 所指向的字符串做比较。 |
s.compare(pos1, n1, cp, n2) |
让 s 中从 pos1 下标位置开始的 n1 个字符与 cp 所指向的字符串的前 n2 个字符做比较。 |
compare函数返回下面列出的三种可能值之一:
1. 正数,此时s1大于args所代表的string对象。 |
2. 负数,此时s1小于args所代表的string对象。 |
3. 0,此时s1恰好等于args所代表的string对象。 |