2021年9月29日 星期三

C++ 额外的string操作

时间:2023-04-27 20:15:19来源 : 哔哩哔哩

构造string的其他方法

除了已经介绍过的string还支持另外三个构造函数


【资料图】

这些构造函数接受一个string或一个const char*参数,还接受(可选的)指定拷贝多少个字符的参数。

通常我们从一个const char*创建string时,指针指向的数组必须以空字符结尾,拷贝操作遇到空字符停止。

substr操作

可以传递给substr一个可选的开始位置和计数值,返回string的一部分

改变string的其他方法

除了迭代器版本的insert和erase外,string还提供了下标的版本

标准库string类型还提供了接受C风格字符数组的insert和assign版本。

我们也可以指定将来自其他string或子字符串的字符插入当前string中或赋予当前string

append和replace函数

append操作时在string末尾进行插入操作的一种简写形式

replace是调用erase和insert的一种简写方式

string的搜索操作

string提供了六个搜索函数,每个函数都返回string::size_type的值,表示匹配发生位置的下标,如果搜索失败,则返回一个名为string::npos的static成员。标准库将npos定义为一个const string::size_type类型,并初始化为-1。

npos为一个unsigned类型,此初始值意味着npos等于任何string最大的可能大小。

find返回找到的第一个匹配位置的下标,否则返回npos

搜索时大小写敏感的,要区分大小写。

一个更复杂的问题时查找与给定字符串中任何一个字符匹配的位置。

如果要搜索第一个不在参数中的字符,应该调用find_first_not_of。

指定在哪里开始搜索

我们可以传递给find操作一个可选的开始位置。这个参数指出从哪个位置开始进行搜索,默认情况下,此位置被置为0。

上面的while的条件中,我们找到name中pos下标之后的第一个数字的下标返回给pos,只要pos不为npos就继续循环,函数体中的++pos是防止while永远读入的是第一个匹配的下标。

逆向搜索标准库还提供了从结尾向头部搜索的函数rfind

compare函数

根据模式串是等于、大于还是小于目标串,模式串.compare分别返回0、正数或负数。

关键词:

(责任编辑:黄俊飞)

推荐内容

Back to Top