文章目录
在运用string的时候总是会记不太清一些函数的用法,故总结了一些string常用函数。
substr()(截取字符串)
用法
string sub=s.substr(begin_pos,sub_length);
实例
#include<bits/stdc++.h>
using namespace std;
int main(){
string s="csdn123";
string sub=s.substr(0,4);//从s中截取从下标为0开始截取长度为4的字符串
cout<<sub<<endl;
return 0;
}
输出:csdn
strcmp() & strncmp & strcoll()(比较字符串)
用法
1. strcmp()
int cmp=strcmp(char* a,char* b);
若参数a和b字符串相同则返回0。a若大于b则返回大于0 的值。a若小于b则返回小于0 的值
2.strncmp
int cmp=strncmp(char* a,char* b,int len);
比较字符串从0到len的部分的大小(不包括len)。若参数a和b字符串相同则返回0。a若大于b则返回大于0 的值。a若小于b则返回小于0 的值
3.strcoll()
int coll=strcoll(char* a,char* b);
若参数a和b字符串相同则返回0。a若大于b则返回大于0 的值。a若小于b则返回小于0 的值
两者主要区别在于strcoll会考虑环境变量
实例
string a="abc",b="bcd",c="abcd";
//strcmp
cout<<strcmp(a,b);//-1
//strncmp
cout<<strncmp(a,c,3)//0
//strcoll
cout<<strcoll(b,a)//1
replace()(替换字符串)
用法
- s.replace(int pos,int len,string str);//可用迭代器起始、结束位置代替pos、len
- s.replace(int pos,int len,string str,int subpos,int sublen);
上述所有string类型可用char*代替
实例
//1.
string s="123";
string str="890";
s.replace(0,1,str);
cout<<s;//"89023"
//2.
s.replace(0,1,str,2,1);
cout<<s;//"023"
find() & find_first_of() & find_last_of() & rfind()(查找)
用法
find()
int pos=s.find(string str,int beginpos=0);
查找成功返回下标,否则返回npos
find_first_of()
查找第一次出现的位置
int pos=s.find_first_of(string str,int beginpos=0);
查找成功返回下标,否则返回npos
find_last_of()
查找最后一次出现的位置
int pos=s.find_last_of(string str,int beginpos=0);
查找成功返回下标,否则返回npos
rfind()
反向查找第一次出现的位置
int pos=s.rfind(string str,int beginpos=0);
查找成功返回下标,否则返回npos
实例
//find
string s="hello";
cout<<s.find("e");//1
//find_first_of
cout<<s.find_first_of("l");//2
//find_last_of
cout<<s.find_last_of("l");//3
//rfind
cout<<s.rfind("l");//3
erase(删除)
用法
- str.erase(pos);
- str.erase(beginpos,len);
- str.erase(begin,end);//迭代器
实例
string str=" example ";
//1.
str.erase(0);
cout<<str;//"example "
//2.
str.erase(7,1);
cout<<str;//"example"
//3.
str.erase(str.begin()+4,str.end());
cout<<str;//"exam"
reverse(倒转)
用法
reverse(str.begin(),str.end());
实例
string str="123";
reverse(str.begin(),str.end());
cout<<str;//"321"
持续更新中……