首页 > 解决方案 > std::find_last_of 实际如何工作?

问题描述

string s = "I Like C++ Tutorial";
cout << s.find_last_of("Like"); 

我知道 find_last_of 返回匹配的最后一个字符,但是,它返回16,这是字母iin的位置Tutorial,但我很困惑,因为我正在搜索Likenot的最后一个位置i,我试图i从字符串中删除。它5按我的预期返回。但问题是它为什么又回来了16

标签: c++string

解决方案


find_last_of查找与给定字符序列中的一个字符相等的最后一个字符。

字符序列是"Like"。最后一个L在位置3,最后一个i在位置16,最后一个k在位置,4最后一个e在位置5。所以它返回了16这些值中的最大值。

如果字符序列"like"不是"Like",它会返回18,因为最后一个l在位置18

如果字符序列中没有与字符串中的任何字母匹配的字母,npos则返回。


推荐阅读