2.5.7 修改字符串
函数erase从字符串中删除一个子串。第一个参数是需要删除的子串的开始位置,第二个参数是子串的长度。字符串第一个字符的索引为0。如果不指明第二个参数,erase函数将删除从索引的指定开始位置到字符串末尾的所有字符。如果两个参数都不指定,erase函数将删除所有的字符,最终得到一个空串。
例2-38
代码
的输出为
实参数4和7指定了子串的开始位置为4,长度为7,该子串为Dennis和其后的空格。
我们将在2.8节介绍如何检查erase的第一个参数是否越界,如果第一个参数在范围内,则删除的字符串的长度是下述两个值中的最械:
第二个实参的值。
字符串的长度减去其中一个实参的值。
函数insert在某个string字符串的指定位置插入另一个字符串,第一个参数给出插入位置,第二个参数给出要插入的字符串。第二个参数可以是一个string字符串或C风格的字符串。
例2-39
代码
的输出为
参数4表示字符S,因此,Dennis和其后的空格都将插入在s1中的空格之后。
我们可以使用例外处理来检测insert的参数是否越界。
函数replace用一个指定的字符串来代替一个子串,第一个参数给出将要替代的子串的首位字符的索引,第二个参数说明子串有多少个字符,第三个参数是要替代子串的字符串。第三个参数可以是string字符串或C风格的字符串。
例2-40
代码
参数4和6指定了子串开始位置的索引为4,长度为6。即该子串为Dennis,这个子串将被Fran代替。
我们可以使用例外处理来检测replace的参数是否越界。如果第一个参数在范围内,用来替换的字符串的长度是下述两个值中的最械:
第二个实参的值。
字符串的长度减去第一个实参的值。
函数swap调换两个字符串。
例2-41
代码
操作符[]可用来访问特定索引位置的字符。
例2-42
代码