c++ - std::find_last_of 实际如何工作?
问题描述
string s = "I Like C++ Tutorial";
cout << s.find_last_of("Like");
我知道 find_last_of 返回匹配的最后一个字符,但是,它返回16
,这是字母i
in的位置Tutorial
,但我很困惑,因为我正在搜索Like
not的最后一个位置i
,我试图i
从字符串中删除。它5
按我的预期返回。但问题是它为什么又回来了16
?
解决方案
find_last_of
查找与给定字符序列中的一个字符相等的最后一个字符。
字符序列是"Like"
。最后一个L
在位置3
,最后一个i
在位置16
,最后一个k
在位置,4
最后一个e
在位置5
。所以它返回了16
这些值中的最大值。
如果字符序列"like"
不是"Like"
,它会返回18
,因为最后一个l
在位置18
。
如果字符序列中没有与字符串中的任何字母匹配的字母,npos
则返回。
推荐阅读
- android - 我在哪里将逻辑放在片段中以与 UI 交互?安卓科特林
- laravel - 在 dev 中预构建所有(包括未使用的)顺风类
- image-segmentation - 使用灰度图像数据集进行训练 - MASKRCNN Matterport
- postgresql - Strapi 与 Postgres 故障转移数据库连接字符串
- wpf - WPF 菜单 - 允许在禁用的菜单项中启用特定控件
- jquery - 使用 jQuery 在 cookie 中切换类和保存状态 - 如何避免闪烁和 AJAX 问题?
- angular8 - 在使用 jspdf 和 html2canvas 时,数据在分页时被切断,有时在新页面上重复
- scala - IntelliJ 无法识别 Scala 项目
- python - 从管理页面 django 打印表格
- c# - 无法将文件从本机反应发送到 .net 核心 api - 上传图片