C++ string 字符串常用函数(find、substr、replace、insert,erase、swap、其他)

首先说一下运算符在string中的用法:

cin>>str;//输入字符串

cout<<str;//输出字符串

str="hello";//将等号右边字符串赋值给左边字符串

str1==str2,str1!=str2;//比较两个字符串是否相同

str1>str2,str1>=str2,str1<str2,str1<=str2;//比较字符串的大小,例如a<b,ab>aa

str1+str2、str1+=str2;//将str1与str2连接起来

举几个简单的栗子:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    cin>>str;//输入字符串
    cout<<str+" "+"world"<<endl;//输出字符串//将str1与str2连接起来
    return 0;
}

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str1="abc",str2="abc";//将等号右边字符串赋值给左边字符串
    //比较字符串大小,真返回1 ,否则返回0
    cout<<(str1>str2)<<endl;
    cout<<(str1<str2)<<endl;
    cout<<(str1==str2)<<endl;
    cout<<endl;

    string str3="ab",str4="ac";//将等号右边字符串赋值给左边字符串
    //比较字符串大小,真返回1 ,否则返回0
    cout<<(str3>str4)<<endl;
    cout<<(str3<str4)<<endl;
    cout<<(str3==str4)<<endl;
    return 0;
}

 

 再说一下很常用的查找函数:

string str,ss;

str.find(ss);//返回字符串 ss 在 str 的位置
str.find(ss, num);//在 str[num]~str[n-1] 范围内查找并返回字符串 ss 在 str 的位置
str.rfind(ss, num);//在 str[0]~str[num] 范围内查找并返回字符串 ss在 str 的位置

 说明一下,如果一个字符串str里面有很多字符串ss时,这里还有关于first、last函数的用法

first 函数

string str,ss;
str.find_first_of(ss);//返回ss 中任何一个字符首次在 str 中出现的位置
str.find_first_of(ss, num);//返回ss中任何一个字符首次在 str[num]~str[n-1] 范围中出现的位置
str.find_first_not_of(ss);//返回除 ss以外的任何一个字符在 str 中首次出现的位置
str.find_first_not_of(ss, num);//返回除 ss以外的任何一个字符在 str[num]~str[n-1] 范围中首次出现的位置

 last 函数
str.find_last_of(ss);//返回 ss 中任何一个字符最后一次在 str 中出现的位置
str.find_last_of(ss, num);//返回ss中任何一个字符最后一次在 str[0]~str[num] 范围中出现的位置
str.find_last_not_of(ss);//返回除ss以外的任何一个字符在 str 中最后一次出现的位置
str.find_last_not_of(ss, num);//返回除ss以外的任何一个字符在 str[0]~str[num] 范围中最后一次出现的位置

 举个简单的栗子:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str="012345678",ss="3456";
    cout<<str.find(ss)<<endl;
    return 0;
}

 

 返回子串:

str.substr(5); //返回str [5] 及以后的子串
str.substr(3, 6); //返回 str[3]~str[3+(6-1)] 子串(即从str[3]开始6个字符组成的字符串)

 举个例子:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str="012345678";
    cout<<str.substr(5)<<endl;
    cout<<str.substr(1,3)<<endl;
    return 0;
}

 

 替换字符串:

 str.replace(num1, num2,ss);//返回把 [num1]~[num1+(num2-1)] 的内容替换为ss 后的新字符串
str.replace(num1, num2, ss, num3);//返回把 [num1]~[num1+(num2-1)] 的内容替换为 ss 的前num3个字符后的新字符串

 

 插入字符串:

str.insert(2, "sz");//从 [2] 位置开始添加字符串 "sz",并返回形成的新字符串
str.insert(2, "abcd", 3);//从 [2] 位置开始添加字符串 "abcd" 的前 3 个字符,并返回形成的新字符串
str.insert(2, "abcd", 1, 3);//从 [2] 位置开始添加字符串 "abcd" 的前 [2]~[2+(3-1)] 个字符,并返回形成的新字符串

 

 删除字符串:

str.erase(3);//删除 [3] 及以后的字符,并返回新字符串
str.erase(3, 5);//删除从 [3] 开始的 5 个字符,并返回新字符串

 

 交换:

str1.swap(str2);//把 str1 与 str2 交换

 

 其他常用函数:

 str.size();//返回字符串长度
str.length();//返回字符串长度
str.empty();//检查 str 是否为空,为空返回 1,否则返回 0

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值