QString类的lastIndexOf函数

qq_33487700 2020-09-28 09:54:20
qt手册上关于lastIndexOf函数有下面举例。测试结果和手册上一致。就是不知道 x.lastIndexOf(y, 6); 为什么返回6.

"crazy azimuths"
x.lastIndexOf(y, 6); 应该是从"crazy a"中从后往前找az,怎么会返回6?


QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6 ??
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1
...全文
1370 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
克洛斯特 2021-04-02
  • 打赏
  • 举报
回复
lastIndexOf(searchValue,fromIndex) 函数查找的方法是这样的 如果 待查找的字符串 searchValue的首字符刚好和fromIndex位置的字符是一样的,那么它会先往后匹配一下,如果刚好匹配到searchValue,就直接返回了; 如果不一样就 从fromIndex位置从后往前查找。
離淵 2021-03-31
  • 打赏
  • 举报
回复
Returns the index position of the last occurrence of the string str in this string, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.
赵4老师 2021-03-31
  • 打赏
  • 举报
回复
  QString x = "crazy azimuths";
  //                     1111
  //           01234567890123
  //                 az <====
  //    ====>    az
  QString y = "az";
  x.lastIndexOf(y, 6);        // returns 6
qq_33487700 2020-09-28
  • 打赏
  • 举报
回复
lastIndexOf是从后往前查找,不是从6往后,是从6往前
qq_33487700 2020-09-28
  • 打赏
  • 举报
回复
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y, 6); // returns 6

x.lastIndexOf(y, 6); 应该是在"crazy a"字符串中从后往前找az,不是应该返回2吗
青空飞羽 2020-09-28
  • 打赏
  • 举报
回复
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y, 6); // returns 6

没问题啊,在字符串x中从下标为6的字符开始寻找最后的子串y "az"的下标开始位置就是6啊

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧