1) find() 函数

find() 函数用于在 string 字符串中查找子字符串出现的位置,它其中的两种原型为:
size_t find (const string& str, size_t pos = 0) const;
size_t find (const char* s, size_t pos = 0) const;

第一个参数为待查找的子字符串,它可以是 string 字符串,也可以是C风格的字符串。第二个参数为开始查找的位置(下标);如果不指明,则从第0个字符开始查找。
#include <iostream>
#include <string>
using namespace std;
int main(){string s1 = "first second third";string s2 = "second";int index = s1.find(s2,5);if(index < s1.length())cout<<"Found at index : "<< index <<endl;elsecout<<"Not found"<<endl;return 0;
}

运行结果:
Found at index : 6

find() 函数最终返回的是子字符串第一次出现在字符串中的起始下标。本例最终是在下标6处找到了 s2 字符串。如果没有查找到子字符串,那么会返回一个无穷大值 4294967295。

2) rfind() 函数

rfind() 和 find() 很类似,同样是在字符串中查找子字符串,不同的是 find() 函数从第二个参数开始往后查找,而 rfind() 函数则最多查找到第二个参数处,如果到了第二个参数所指定的下标还没有找到子字符串,则返回一个无穷大值4294967295。

#include <iostream>
#include <string>
using namespace std;
int main(){string s1 = "first second third";string s2 = "second";int index = s1.rfind(s2,6);if(index < s1.length())cout<<"Found at index : "<< index <<endl;elsecout<<"Not found"<<endl;return 0;
}
  1. find_first_of() 函数
    find_first_of() 函数用于查找子字符串和字符串共同具有的字符在字符串中首次出现的位置。请看下面的代码:
#include <iostream>
#include <string>
using namespace std;
int main(){string s1 = "first second second third";string s2 = "asecond";int index = s1.find_first_of(s2);if(index < s1.length())cout<<"Found at index : "<< index <<endl;elsecout<<"Not found"<<endl;return 0;
}
运行结果:
Found at index : 3本例中 s1 和 s2 共同具有的字符是 ’s’,该字符在 s1 中首次出现的下标是3,故查找结果返回3。

C++字符串详解(三) 字符串的查找相关推荐

  1. C++字符串详解(三) 字符串的增删改

    一. 插入字符串 insert() 函数可以在 string 字符串中指定的位置插入另一个字符串,它的一种原型为: string& insert (size_t pos, const stri ...

  2. EditPlus正则表达式替换字符串详解

    EditPlus正则表达式替换字符串详解 发布时间:April 8, 2007 分类:Regular <PHP 实现多服务器共享 SESSION 数据> <利用javascript在 ...

  3. 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...

  4. C语言中可以用字符串常量来,C语言字符串详解

    原标题:C语言字符串详解 字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串, ...

  5. python 字符串替换_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  6. python字符串是什么_python字符串详解

    字符串详解 在python中引号引起来的就是字符串 字符串是用来存储少量数据 索引 索引(下标) 通过索引可以精确的定位到某个元素 name = "meat" meat 每一个字母 ...

  7. 判断字符串格式_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  8. Python基础语法day02字符串详解和列表

    今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...

  9. python中的字符串详解(附实现文字跑马灯效果)

    python中的字符串详解 1.什么是字符串 ​ 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...

最新文章

  1. 人工智能的圣杯:关于可解释AI(XAI)的一切
  2. 使用Infinispan创建自己的Drools和jBPM持久性
  3. maven项目 Java compiler level does not match the version of the installed Java project facet
  4. keyshot怎么批量渲染_怎么快速设置Keyshot渲染参数
  5. MyEclipse添加Mybatis generator插件
  6. [软件架构]基于PluginRT的插件编程
  7. 致远OA_0day批量植Cknife马一步到位
  8. 用matlab来计算函数,Matlab函数求导教程
  9. 惠普服务器装centos 系统安装,hp 服务器安装linux系统安装
  10. 汽车维修企业管理【7】
  11. /usr/bin/xauth: file /home/wj/.Xauthority does not exist
  12. WebAssembly 实践:如何写代码
  13. 语音特征:spectrogram、Fbank(fiterbank)、MFCC
  14. 互联网晚报 | 06月07日 星期二 | 杭州调整住房公积金政策;苹果发布iOS 16;特斯拉回应裁员是否涉及中国地区...
  15. 设计公司该怎样开展业务?
  16. WPF自学手册-读书笔记(三)小有所成
  17. L1-020 帅到没朋友
  18. 微信小程(JAVAScript)实现自定义柱状图
  19. 区块链技术开发构建大数据征信闭环
  20. 1万条数据大概占多大空间_快递信息泄露背后:40元可买超4G简历数据

热门文章

  1. MySQL的优化与执行
  2. 读CSS DIV网页样式与布局心得体会
  3. Android开发 - 掌握ConstraintLayout(四)创建基本约束
  4. 修改zabbix后台登录账号和密码,提升为超级管理员
  5. magent实现memcached集群的一个问题
  6. 如何调整mintty行距及字间距
  7. 创建IT运维管理门户
  8. 当Windows Vista提示“内存不足”……
  9. 操作系统第四章-文件管理
  10. java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?