c++string函数——find、rfind详细用法
2021/11/14 11:09:39
本文主要是介绍c++string函数——find、rfind详细用法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c++string函数——find、rfind详细用法
string的find函数
- c++string函数——find、rfind详细用法
- 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
开始,向前查找符合条件的字符串;
原文链接:https://blog.csdn.net/qq_29493173/article/details/109004984
这篇关于c++string函数——find、rfind详细用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-22为啥chrome查看到网页,只有5000多行,应该有1万多行才对
- 2024-09-21LangChain4j支持的API类型
- 2024-09-21企业如何判断自身的 CRM 系统需要多大的服务器配置?
- 2024-09-21拼接的xml报文,尖括号都被转移成了< 是什么原因-icode9专业技术文章分享
- 2024-09-21Svg Sprite Icon教程:从入门到实践
- 2024-09-21Svg Sprite Icon实战:从入门到上手
- 2024-09-20构建一个多PDF RAG聊天机器人:使用Langchain和Streamlit及代码
- 2024-09-20whatsapp webhook 回调的签名验证偶尔会失败是什么原因-icode9专业技术文章分享
- 2024-09-19Excel数据导出课程:初学者必备教程
- 2024-09-19Excel数据导入课程:新手入门指南