目录

  • 1. 基本用法
    • 语法
    • 举例
  • 2. 延伸用法
    • 2.1 找到目标字符第一次出现和最后一次出现的位置
    • 2.2 反向查找
    • 2.3 查找所有子串在母串中出现的位置

1. 基本用法

语法

string的find()函数用于找出字母在字符串中的位置。

find(str,position)
  • str:是要找的元素

  • position:字符串中的某个位置,表示从从这个位置开始的字符串中找指定元素(不填第二个参数,默认从字符串的开头进行查找)

返回值为目标字符的位置(第一个字符位置为0),当没有找到目标字符时返回npos

举例

//找到目标字符的位置
string s = "hello world!";
cout << s.find("e") << endl;
输出结果:1
//未找到目标字符
string s = "hello world!";
if (s.find("a") == s.npos) {cout << "not found" << endl;
}
输出结果:not found
//指定查找位置
string s = "hello world!";
cout << s.find("l",5) << endl;
输出结果:9


2. 延伸用法

2.1 找到目标字符第一次出现和最后一次出现的位置

string s = "hello world!";
cout <<s.find_first_of("l") << endl;//第一次出现的位置
cout << s.find_last_of("l") << endl;//最后一次出现的位置

结果为:
2
9

2.2 反向查找

string s = "hello world!";
cout << s.rfind("l") << endl;//即从后往前第一次出现"l"的位置

结果为:9

通常我们可以这样来使用,当正向查找与反向查找得到的位置不相同说明子串不唯一。

2.3 查找所有子串在母串中出现的位置

//查找s 中flag 出现的所有位置。string s("hello world!");string flag="l";int position=0;int i=1;while((position=s.find(flag,position))!=string::npos){cout<<"position  "<<i<<" : "<<position<<endl;position++;i++;}

运行结果

  position  1 : 2position  2 : 3position  3 : 9

string的find( )函数✅相关推荐

  1. OC与c混编实现Java的String的hashcode()函数

    首先,我不愿意大家需要用到这篇文章里的代码,因为基本上你就是被坑了. 起因:我被Java后台人员坑了一把,他们要对请求的参数增加一个额外的字段,字段的用途是来校验其余的参数是否再传递过程中被篡改或因为 ...

  2. c++string类默认函数实现

    c++ string类默认几种函数实现. //构造函数传const指针 //参数都是取引用 /*class String { public:String(const char *str = NULL) ...

  3. string的find函数

    string的find函数找不到"\"转义字符,需要再添加一个"\\",这样就可以找到了 #include<cstdint> #include< ...

  4. C++string中find_first_not_of()函数和find_last_not_of()函数

    C++string中find_first_not_of()函数和find_last_not_of()函数 C++string中find_first_not_of()函数和find_last_not_o ...

  5. java convert函数_自己实现 java中 Convert.toDouble(String str)处理函数 | 学步园

    今天在superWaba上看到Convert.toDouble(String str),由于底层问题比较大的数就出错,现在自己写了一个 程序中info()是我加的打印,可以去掉 java中 Conve ...

  6. 【笔试】:编程实现C++string 类成员函数

    http://blog.csdn.net/wangshihui512/article/details/9792309 已知String类声明如下: [cpp] view plaincopy print ...

  7. C++ string类常用函数

    C++ string类常用函数 http://xiaocao000.spaces.live.com/blog/cns!F826A925CF33491A!117.entry string类的构造函数: ...

  8. C++ 函数返回临时string调用c_str()函数的坑(VS警告:C26815 指针无关联,因为它指向已销毁的临时实例)(悬空指针 dangling pointer)

    文章目录 问题背景 20230301 问题深入解析:悬空指针 问题背景 如: ... #pragma warning(disable : 4996) #include <iostream> ...

  9. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

最新文章

  1. 某同学配置了一台计算机,第六章 计算机硬件系统作业答案.doc
  2. Android App“加固”
  3. Win7系统电脑修改不了文件属性怎么办
  4. 刚刚!频域通道注意力网络FcaNet开源了!
  5. 你可能不知道的关于 Git stash 的技巧
  6. Android 源码获取-----在Windows环境下通过Git得到Android源代码
  7. 数据结构与算法LeetCode题目记录
  8. java能写dnf辅助么,【Java8新特征】还没搞懂函数式接口?赶忙过来看看吧!_卡盟,dnf脚本...
  9. 信号与线性系统分析(吴大正,郭宝龙)(信号的分类)
  10. linux ascii游戏,linux – Bash ASCII实现
  11. 网证你申请了吗?怎么使用?
  12. 如何计算两个日期之间的工作天数
  13. 性能跑分第一的安卓模拟器?
  14. 【并发编程的艺术】并发机制原理
  15. python公司基本面_Python读年报12-获得公司财务基本面信息
  16. Go语言特性记录及与java、python对比之包、变量和函数
  17. Java并发编程基础
  18. JAVA递归函数示例 - 阶乘计算
  19. underscore_PHP Underscore入门
  20. 相位噪声的含义和6个测量方法

热门文章

  1. 面试准备之SQL 3——数据管理
  2. php jmail 乱码,ASP实例:解决Jmail发送邮件标题出现乱码
  3. leetcode-全排列详解(回溯算法)
  4. Go中error类型的nil值和nil
  5. python flask的request模块以及在flask编程中遇到的坑
  6. Linux设备模型(4)_sysfs
  7. Java面向对象-抽象类
  8. ABP后台服务之作业调度Quartz.NET
  9. mysql -数据库(备份与恢复)
  10. 如何修改Myeclipse中代码的字体大小?