STL学习-string

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类的元素,按照字典序排序
发布了33 篇原创文章 · 获赞 14 · 访问量 435

猜你喜欢

转载自blog.csdn.net/qq_44077455/article/details/102907091