string的专属构造函数:
1、用字符数组的前n个字符构造string: string s(cp, n) ; n必须小于cp长度;
2、用另一个string的子串构造string:string s(s2, pos2, len2); // 用s2的pos2下标开始的len2个字符构造s (包括pos2), 若len2被省略,则默认取到s2的最后一个元素。取子串界限不能超过s2的实际长度。
string支持的其他操作:
1、取子串:substr(pos, n); // 取从pos开始的n个字符作为子串,包括pos
2、接受下标的insert/erase操作:
- insert(pos, n, t); // 在下标pos之前插入n个值为t的元素,pos最大是size() ,尾后位置
- erase(pos, n); // 删除pos下标及之后的n个元素
3、C风格字符串替换 / 插入 string:
- assign(cp, n); // cp是一个C风格字符串,用C风格字符串替换string的内容
- insert(pos, cp, pos_cp); // 将cp中pos_cp之前的内容插入string的pos下标之前,pos最大是尾后。
4、从另一个string中指定下标和长度插入:
- insert(pos1, s2, pos2, len2); // 在位置pos1插入s2中的pos2下标之后的len2个元素,可以省略pos2和len2,意为直接在pos1之前插入s2的拷贝
5、append函数:
一个将内容追加到string末尾的函数
- append(cp, n) ; // 在s末尾添加字符数组cp的前n个字符,n省略时添加cp全部字符
- append(s2, pos2, len2); // 追加s2中的pos2及之后的len2个字符到s末尾
- append(n, t); // 追加n个值为t的字符到s末尾
- append(b, e); // 添加迭代器序列包含的[b, e) 的字符到s末尾
- append(il); // 添加列表中的字符到s末尾
6、replace函数:
- replace(pos, len, cp, n) / replace(b, e, cp, n);
// 用字符数组cp的前n个字符, n默认值为cp长度,替换s中pos之后的len个字符或替换[b, e)所代表的字符
- replace(pos, len, s2, pos2, len2);
// 用s2中的pos2及之后的len2个字符到s末尾,替换pos之后的len个字符 ,可省略pos2和len2,直接用s2替换,这条对b,e迭代器序列不适用
- replace(pos, len, n, t); / replace(b, e, n, t);
// 用n个值为t的字符替换pos之后的len个字符,也可以是替换[b, e)的内容
- replace(b, e, b2, e2);
// 用迭代器序列包含的[b2, e2) 的字符替换原s中的[b, e)所对应的字符
- replace(b, e, il);
// 用列表中的字符替换s中[b, e)所对应的字符
- replace(b, e, s2);
// s2替换[b, e)所在的迭代器序列
- erase, assign, append, replace 返回的都是s的引用,insert接受下标的版本返回s的引用,接受迭代器的版本返回插入后的第一个元素的迭代器。
7、find函数:
find函数可以在string对象查找:一个字符/另一个string/C风格字符串
- find(c, pos); // 返回pos下标开始,第一个值为c的字符,包括pos,pos默认值为0
- find(cp, pos); // 返回pos开始,C风格字符串cp第一次出现的位置,包括pos,pos默认值为0
- find(s2, pos); // 返回pos开始,s2第一次出现的位置,包括pos,pos默认值为0
- find(cp, pos, len); // 返回pos开始的len个字符中,C风格字符串cp第一次出现的位置,包括pos,pos默认值为0
find函数还有变形版本:
- rfind : 返回最后一次出现的下标;
- find_first_of: 查找内容中任意一个字符第一次出现的位置;
- find_last_of : 查找内容中任意一个字符最后一次出现的位置;
- find_first_not_of : 返回第一个不是查找内容中任意字符的字符;
- find_last_not_of : 返回最后一个不是查找内容的任意字符的字符。
8、compare函数:
- compare(s2); // 比较s1与s2
- compare(pos1, n1, s2); // 比较s2与s1的pos及之后的n1个字符;
- compare(pos1, n1, s2, pos2, n2); // 比较s的pos1及之后的n1个字符,与s2的pos2及之后的n2个字符;
- compare(cp); // 比较s与C风格字符串cp
- compare(pos1, n1, cp);// 比较s的pos1及之后的n1个字符与C风格字符串cp
- compare(pos1, n1, cp, n2);// 比较s的pos1及之后的n1个字符与C风格字符串cp的前n个字符
9、string转算数类型: