string是一个类,有点像vector中存字符,但它有更多方便的操作
//使用需包含头文件
#include<string>
1.初始化与赋值
string s; //声明一个空的string类变量
string s1="abc"; //用abc这个字符串给s1赋初值
string s2=s1; //把s1赋值给s2
string s3[SIZE]; //申明一个string类的数组,相当于二维字符数组
s3=s3+'a';s3=s3+"abc"; //在string中重载了运算符,因此可以利用“+”来添加字符或者字符串,但是-不可用来删除
2.插入和删除
//操作类似于vector
s1.push_back('a'); //在s1最后加入一个字符
s1.insert(s1.begin(),'a'); //在s1的下标为0处增加一个字符a
s1.insert(s1.begin(),s2.begin()+1,s2.begin()+2); //把s2中指定位置字符串复制到s1中
s1.pop_back();//删除最后一个元素
s1.erase(s1.begin(),s1.begin()+2);//删除指定位置的元素
3.遍历输出
//可以直接用cout
cout<<s1<<endl; //将s1输出
for(auto it=s1.begin();it!=s1.end();it++)
cout<<(*it)<<endl;
//string数组的输出就按照正常数组方式输出
4.特殊操作
s1.find('a');s1.find("abc");//在s1中查找一个字符或者一个字符串,找到了返回第一个字符出现的下标,没找到返回-1,字符串必须要是连续子串才算
s1.find_first_of("abc") //在s1中找一个字符或者字符串中任意一个字符,即只有当字符串中所有字符均未在s1中才返回-1,其他情况返回第一个找到的字符的下标
s1.find_first_not_of("abc") //在s1中找一个字符不等于字符串中任意一个字符,返回下标pos,即pos前的所有字符均在查找的字符串中出现
sort(s1.begin(),s1.end()); //将s1进行排序,不区分大小写
//对string数组进行排序需要自己定义一下排序方法
bool cmp(string a,string b)
{
return a<b;
}
sort(s,s+n,cmp); //n代表有多少string类的元素,按照字典序排序