在C语言中,使用char[]数组来存储字符串,但操作起来比较麻烦
C++中的STL加入了String类
#include <string> 注意和#inlucde <cstring>不同
using namespace std;
1、string的定义
string str;
string str = "abcdefg";
2、string中内容的访问
(1)、通过下标进行访问
for (int i = 0; i < str.size(); i++)
cout<<str[i]<<" ";
(2)、通过迭代器访问
for (auto it = str.begin(); it != str.end(); it++)
cout<<*it<<" ";
3、string常用函数实例解析
(1)、operator +=
str = str1 + str2可以直接将两个字符串进行拼接
(2)、compare operator
将两个字符串进行比较> < == >= <= !=
比较的规则是字典序
(3)、length()/size()
length()/size()返回字符串的长度
(4)、insert()
字符串的插入
1)、insert(pos, str)
在pos号位置上插入字符串str
2)、insert(it, it2, it 3)
it为待插入的位置,将字符串[it2, it3)中的内容插入到str中
(5)、erase()
删除字符串中的元素
1)、删除单个元素
srt.erase(it)
2)、删除一个区间内的所有元素
str.erase(first, last)
其中first为需要删除区间的起始迭代器,last为需要删除的区间的末尾迭代器的下一个地址
str.erase(pos, length)
删除str中第pos位置开始,长度为length的元素
(6)、clear()
用于清空string中的数据
(7)、substr()
返回子字符串
1)、str.substr(pos)
返回pos位置开始到str末尾结束的字符串
2)、str.substr(pos, length)
返回pos位置开始,长度为length的字符串
(8)、string :: npos
string :: npos用以作为find函数失配时的返回值
str.find(s) != string :: npos说明在str中可以找到s的字符串
(9)、find()
str.find(s)
当s是str的字符串时,返回其在str中第一次出现的位置,否则返回string :: npos
str.find(s, pos) 从第pos号开始匹配s
(10)、replace()
str.replace(pos, len, s)
把str的第pos位置开始长度为len的字符串替换为s
sre.replace(it1, it2, s)
把str的迭代器[it1, it2)范围内的子串替换为s