c++string函数(一)——find、rfind详细用法
string的find函数
- 1.正向查找find()
- 1.1 s.find(str)
- 1.2 s.find(str,pos)
- 1.3 s.find_first_of(str) 和 s.find_last_of(str)
- 1.4查找目标字符串在字符串出现的总次数
- 2.逆向查找rfind()
1.正向查找find()
1.1 s.find(str)
string中find()返回值是字母在母串中的下标位置。
如果没有找到,那么会返回一个特别的标记npos,一般写作string::npos
。
string s, c;
int main() {s = "apple";c = "l";int index = s.find(c);if (index != string::npos)cout << index << endl;
}
输出:
3
1.2 s.find(str,pos)
find(str,pos)是用来寻找从pos开始(包括pos处字符)匹配str的位置。
string s, c;
int main() {s = "laaaal";c = "l";int index = s.find(c,3);//从字符串s下标3的位置开始寻找if (index != string::npos)cout << index << endl;
}
上述等价于从字符串"aal"开始找"l",省略第一个"l"。
输出结果:
5
1.3 s.find_first_of(str) 和 s.find_last_of(str)
找到目标字符在字符串中第一次出现和最后一次出现的位置
string s, c;
int main() {s = "laaaal";c = "l";cout << "first index:" << s.find_first_of(c) << endl;cout << "last index:" << s.find_last_of(c) << endl;
}
输出:
first index:0
last index:5
1.4查找目标字符串在字符串出现的总次数
核心代码:index=s.find(c,index)
,index每次都会更新下一次找到的位置,如果没有找到跳出循环。
string s, c;int main() {while (cin >> s >> c) {int index = 0;//用来存储不断更新最新找到的位置int sum = 0;//累加出现的次数while ((index = s.find(c,index)) != string::npos) {cout << "sum: " << sum+1 << " index: " << index <<endl;index += c.length();//上一次s中与c完全匹配的字符应跳过,不再比较sum++;}cout << sum << endl;}
}
llllll
ll
sum: 1 index: 0
sum: 2 index: 2
sum: 3 index: 4
3
2.逆向查找rfind()
- s.rfind(str): 是从字符串右侧开始匹配str,并返回在字符串中的下标位置;
string s = "apple";
cout << s.rfind("l") << endl;
这时结果是否还是跟find()查找一样,输出结果是3呢?让我们往下看。
结果显示:
3
- rfind(str,pos): 从pos开始,向前查找符合条件的字符串;
c++string函数(一)——find、rfind详细用法相关推荐
- oracle 天转换成月函数_oracle中to_date详细用法示例(oracle日期格式转换)
TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) select to_char(sysdate,'yyyy-mm ...
- impala常用String函数大全(超详细)
本文目录 字符串函数 函数列表 字符串函数 Impala中字符串函数主要应用于 varchar.char.string类型,如果把varchar或者char类型的值传递给字符串函数,返回将是一个str ...
- C++中s.find()和s.rfind()的用法
本博客转载博主你脸上有BUG的博客c++string函数(一)--find.rfind详细用法 呃-主要我懒得写了-自己拷贝下来以后好找好复习. 此函数主要用于查找子串在母串中的位置. 1.正向查找f ...
- c++ string函数详细返回值及用法!
通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了! 下面先罗列出string ...
- Python语言学习之字母G开头函数使用集锦:global用法之详细攻略
Python语言学习之字母G开头函数使用集锦:global用法之详细攻略 global全局变量用法 global全局变量:python使用的变量默认一定是用局部变量:如果想使用作用域之外的全局变量,则 ...
- Python语言学习之字母A开头函数使用集锦:assert用法之详细攻略
Python语言学习之字母A开头函数使用集锦:assert用法之详细攻略 assert断言的用法 assert断言用法:防御性的编程.运行时对程序逻辑的检测.合约性检查(比如前置条件,后置条件).程序 ...
- Python语言学习之字母C开头函数使用集锦:count用法之详细攻略
Python语言学习之字母C开头函数使用集锦:count用法之详细攻略 count用法 list.count函数的用法 list=['America', 'America', '山东', '山东', ...
- oracle rtrim(),Oracle ltrim() rtrim() 函数详细用法
嘿嘿,今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下: 先看几个实例: SQL> select ltrim('109224323','109') f ...
- pythonrange函数用法_python range()函数详细用法
python range()函数详细用法 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range( ...
最新文章
- RateLimiter 的底层实现是啥?
- ValueError: Must have equal len keys and value when setting with an iterable
- 怎样在谷歌浏览器上加载金山词霸的取词插件?
- SpringBoot中使用Redis数据库
- [算法笔记]-环形链表Ⅱ-解题方法
- Amazon Aurora:高吞吐量云原生关系数据库的设计考虑
- 【Java】五种常见排序之-----------冒泡排序
- axios请求报Uncaught (in promise) Error: Request failed with status code 404
- simulink中mask设置_(实现BPSK学习Verilog)1. Simulink仿真实现
- elasticsearch 条件去重_Elasticsearch学习之查询去重
- 微软Tech·Ed与中国IT行业一同成长
- Python学习相关文档
- Spring Boot + JPA + Oracle 自增长字段实现示例
- 【codevs4228】小猫爬山(最优化剪枝)
- Python地理数据处理相关模块的安装方法
- 数字图像处理-空间滤波
- jsp企业员工请假管理系统
- java 托盘 气泡 菜单_C#如何使用NotifyIcon实现任务栏托盘菜单及气泡提示
- 小米路由器显示DNS服务器设置错误,小米路由器dns地址怎么设置
- 情感日记:用科学的方法追女孩(转)