string sub=s.substr(begin_pos,sub_length);
#include
using namespace std;
int main(){
string s="csdn123";
string sub=s.substr(0,4);//从s中截取从下标为0开始截取长度为4的字符串
cout<<sub<<endl;
return 0;
}
输出:csdn
int cmp=strcmp(char* a,char* b);
若参数a和b字符串相同则返回0。a若大于b则返回大于0 的值。a若小于b则返回小于0 的值
int cmp=strncmp(char* a,char* b,int len);
比较字符串从0到len的部分的大小(不包括len)。若参数a和b字符串相同则返回0。a若大于b则返回大于0 的值。a若小于b则返回小于0 的值
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
上述所有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"
int pos=s.find(string str,int beginpos=0);
查找成功返回下标,否则返回npos
查找第一次出现的位置
int pos=s.find_first_of(string str,int beginpos=0);
查找成功返回下标,否则返回npos
查找最后一次出现的位置
int pos=s.find_last_of(string str,int beginpos=0);
查找成功返回下标,否则返回npos
反向查找第一次出现的位置
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
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(str.begin(),str.end());
string str="123";
reverse(str.begin(),str.end());
cout<<str;//"321"
持续更新中……