1.string类的初始化

string s1;           //空字符串
	string s2(10, '#');  //10个‘#’和\0,在s[10]的位置添加'\0'
	string s3("ABC");    //字符串“ABC”
	string s4(s3);       //与s3内容一样
    string s4={'a','b','c'};  //实际存进去的是“abc\0” 在\0后的位置存放的是随机值,不可访问

注意:

以上方式初始化会在字符串末尾自动添加 \0


2.string类的容量

①size()/length()  -------------获取string的可访问空间(即0 -  s[size]) 

注意:一般情况下大于s[size]的空间即使存在也不能访问

(但这个并不是由size决定的,当用assign, n, 重新申请权限时,可以访问超过size的成员)

②capacity()------------------------获取当前string的容量

③resize(int n)

  • 当前 size < n 时,将s[size]到s[n]全部用'\0'填充
  • 当 size > n 时,只将s[size]处改为 '\0' 

④resize(n,cha c)

  • 当前 size > n 时,将s[size-1]到s[n]全部用字符 c 填充,且在s[size]处写入'\0'
  • 当 size < n 时,只将s[size]处改为 '\0' 

⑤reserve(n)---------------------改变当前的容量不会填充空间(可能实际空间会比n大)


2.插入操作

⑥s1.swap(s2)--------------交换两个字符串的内容

⑦push_back(char c)----------在string后插入一个字符(参数必须是字符类型)(自动在其后添加\0或者盛申请空间)

⑧append("ABC")--------------在string后添加一个字符串,参数必须是字符串。

insert

①insert(2,3,'A')-------------在string[2]的位置上插入3个字符A

②insert(2,"ABC")--------以string[2]为起点,插入字符串ABC

③insert(2,"ABC",2)--------以string[2]为起点,,插入字符串ABC的前两个字符

④insert(2,"ABCD",2,2)-----以string[2]为起点,插入字符串ABCD的2号下标后的两个字符


3.重置

①str.assign("ABC")----------------重置字符串,并将ABC赋为初值,(实际上是给前三个赋值为ABC,并在其后加上\0)
②str.assign("ABC",2)-------------将ABC的前两个字符assign(“ABC”)操作
③str.assign("ABCDE",2,3)------清空字符串,设置为 "ABC" 中的从 位置2开始,保留 3个 字符(如果该数字大于总的字符串,也仅会在CDE后直接添加一个\0)
④str.assign(5,'A')-----------------重置字符串然后字符串设置为 5个 'A'


4.查找

成功返回位置,失败返回-1

①find('A')--------------------从头找字符A

②find(“ABC”)-----------从头找字符串ABC

③find(‘A’,1)-----------从下表为1的位置开始查找字符1

④find(“ABC”,2)-------从下标位为2的位置开始查找字符串ABC

⑤find(“ABC”,2,1)从位置2处开始查找字符串ABC的前1个字符

rfind:同find,只是将从头找换成从尾巴找


5.提取字符/字符串

①s1=s2.substr(2)--------------用s2的二号下表开始至结束的字符赋值给s1(返回值为string类型)

②s1=s2.substr(2,3)------------从s2中提取3个字符给s1

③const char* s1 = s2.c_str;-将string类型转换为字符串数组给s1(将string类中存储字符串的地址给s1)

注意:采用这种方式返回时,不能修改原字符串,只能使用。

④s1.copy(s2,count,pos)------从s1[pos]位置开始拷贝count个元素到s2中,s2为char*

6.查找字符/字符

 string s="hello world!"

find("world")

在s中查找字符串“world”并返回下标

find(‘l’)

在s中查找第一个遇见的‘  l ’并返回下标

rfind(""world)

从后面开始查找遇见的第一个“world”并返回下标

rfind(‘l’)

从化后面开始查找遇见的第一个‘l’并返回下标

反转:7.其他

reserve(str.begain(),str.end());---------------反转字符串