c++string常用函数

文章目录

    • substr()(截取字符串)
      • 用法
      • 实例
    • strcmp() & strncmp & strcoll()(比较字符串)
      • 用法
        • 1. strcmp()
        • 2.strncmp
        • 3.strcoll()
      • 实例
    • replace()(替换字符串)
      • 用法
      • 实例
    • find() & find_first_of() & find_last_of() & rfind()(查找)
      • 用法
        • find()
        • find_first_of()
        • find_last_of()
        • rfind()
      • 实例
    • erase(删除)
      • 用法
      • 实例
    • reverse(倒转)
      • 用法
      • 实例

在运用string的时候总是会记不太清一些函数的用法,故总结了一些string常用函数。

substr()(截取字符串)

用法

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

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()(替换字符串)

用法

  1. s.replace(int pos,int len,string str);//可用迭代器起始、结束位置代替pos、len
  2. 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(删除)

用法

  1. str.erase(pos);
  2. str.erase(beginpos,len);
  3. 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"

持续更新中……

你可能感兴趣的:(笔记,c++,string)