什么是string?
string 是C++标准库提供的字符串类。
string与char s[ ]的区别是什么?
①char s[ ]本质上还是数组,长度固定;string长度不限;
②string本质是类,其中包含有大量函数,方便操作;
③string中重载了如‘+’ ’>' '<"等符号,便于操作;
④可以将string理解为包含了大量函数的char s[ ]。
string 包含在<string>头文件中。

这里给出了四种创建方式,前三种应该问题不大,着重说一下第四种:

string s3(7,‘a');这里将’a‘字符复制了7遍后存入字符串s3.
string的构造函数重载了七种,如下图,有兴趣的可自行探索:

常见的cin读入有着不能读入空格的缺陷,在一些场景十分恼人。而string还重载了getline以解决:
使用:getline(cin,s);读入时直到遇到’\n'换行符才结束。

在字符串中寻找子字符串出现的位置,找到则返回其下标,没有则返回-1。
使用方法:
s.find("你要找到字串",pos);pos是指从该位置往后找,若没有输入pos则默认从头开始找。

截取子字符串,当长度超过原字符串时,截取剩余的。
使用方法:
s.substr(pos,len);len是你要截取的长度,若不给入,则默认从pos位置取完剩下的。

返回当前字符串有效字符长度。
使用方法:
int s_size=s.size();返回的是size_t类型的数据(从0开始,没有负数,size_t在32位环境下是4字节,64位时是8字节)

检测字符串是否为空,是返回true,不是返回false;
bool jud=s.empty()

清空字符串。
s.clear();
string重载了【】,,可以通过下标访问。

这里的迭代器可以理解为封装过后的“指针”;
(1)正着遍历:begin+end;
使用方法: string::iterator it = s.begin();iterator为关键字,it为变量名

(2)反着遍历:rbegin+rend;
string::reverse_iterator rit = s.rbegin();reverse_iterator为关键字

auto,自动推测变量类型,中间由‘ :’隔开
范围for的底层是由迭代器实现的。

作用:在字符串尾添加单个字符。
用法:s.push_back()

作用:string重载了+=,使之可用于在字符串后追加字符串或字符。该方式十分常用。
用法:s+="string!",如下图:
