C++反向查找字符串及子串提取


前言

C++的字符串的正向查找通常使用.find,那你知道如果倒着查吗?


一、倒查字符串的方法是什么?

通常正向查找字符串内第一次出现子串的位置时使用如下方法:

#正序查找
std::string zifuchuan = "use for test and test the effect";
std::string chazhao = "test";
int weizhi = zifuchuan.find(chazhao);
std::string zichuan = zifuzhuan.substr(weizhi+1,zifuchuan.length()); 

而倒着查目标第一次出现的位置就只需要将上述代码中的find()换成rfind()即可。

#倒序查找
std::string zifuchuan = "use for test and test the effect";
std::string chazhao = "test";
int weizhi = zifuchuan.rfind(chazhao);
std::string zichuan = zifuzhuan.substr(weizhi+1,zifuchuan.length()); 

二、代码结果分析

1.正序查找

从左到右第一次出现"test"的位置(存入weizhi中),获取此位置往右的内容作为子串(存入zichuan中)。

zichuan = "test and test the effect";

2.倒序查找

从右到左第一次出现"test"的位置(存入weizhi中),获取此位置往右的内容作为子串(存入zichuan中)。

zichuan = "test the effect";

总结

倒序查找的rfind和正序查找的find,得到的都是目标内容第一次出现的位置。
同时,要注意提取子串时位置(weizhi的值)要加一。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值