前言
C++的string字符串学习笔记
字符串的创建
空构造
使用字符数组创建字符串
1 2
| const char * c = ""; string str(c);
|
拷贝构造
使用多个相同字符创建字符串
<num>
:相同字符的个数
字符串的赋值
直接赋值
利用assign方法赋值
1 2
| string& str; str.assign(str);
|
1 2
| string& str; str.assign("");
|
<num>
:前部分字符
1 2
| string& str; str.assign("", <num>);
|
<num>
:字符的个数
1 2
| string& s7; s7.assign('', <num>);
|
字符串的拼接
使用运算符拼接
使用append方法拼接
<num>
:前部分字符下标
<start>
:开始位置下标
<num>
:截取的字符个数
1
| str.append("", <start>, <num>);
|
字符串的查找
find函数
从起始位置开始查找
从指定位置开始查找
<index>
:开始查找的位置下标
从指定位置开始查找并指定结束位置
<index>
:开始查找的位置下标
<num>
:父串中需要查找的字符个数
1
| str.find(str, <index>, <num>);
|
1
| str.find("", <index>, <num>);
|
1
| str.find('', <index>, <num>);
|
rfind函数
从起始位置开始查找
从指定位置开始查找
<index>
:开始查找的位置下标
1
| str.rfind(str, <index>);
|
从指定位置开始查找并指定结束位置
<index>
:开始查找的位置下标
<num>
:父串中需要查找的字符个数
1
| str.rfind(str, <index>, <num>);
|
1
| str.rfind("", <index>, <num>);
|
1
| str.rfind('', <index>, <num>);
|
字符串的替换
- 在字符串的指定位置替换字符串
- 并不是替换指定个数子串,而是将子串所有内容替换父串指定个数的字符
<start>
:开始位置下标
<num>
:要替换的字符个数
1
| str.replace(<start>, <num>, str);
|
1
| str.replace(<start>, <num>, "");
|
字符串比较
- 根据每个字符的ASCII码值比较
- 如果旧串等于新串,返回0
- 如果旧串大于新串,返回1
- 如果旧串小于新串,返回-1
1
| str_old.compare(str_new);
|
字符串的中某个字符的读写
直接用运算符
- 因为字符串本质是字符数组,所以可以用字符在字符数组中的下标来找到字符在字符串中的位置
<index>
:字符在字符串中的下标
通过at函数
字符串的插入
<index>
:想要插入的位置下标
1
| str.insert(<index>, str);
|
1
| str.insert(<index>, "");
|
<num>
:插入字符的个数
1
| str.insert(<index>, <num>, '');
|
字符串的删除
<index>
:开始删除的位置下标
<num>
:删除字符的个数
1
| str,erase(<index>, <num>);
|
删除到末尾
截取子串
<index>
:开始截取位置
<num>
:开始截取的字符个数
1
| str.substr(<index>, <num>);
|
从指定位置到末尾
从头截取指定个数的字符
完成
参考文献
哔哩哔哩——黑马程序员