c++ - std::find_last_of 实际上是如何工作的?

标签 c++ string

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

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

最佳答案

find_last_of找到等于给定字符序列中的一个字符的最后一个字符。

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

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

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

关于c++ - std::find_last_of 实际上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55296650/

相关文章:

c++ - curl 与 Visual Studio 2013

c++ - make 查找 fortran 77 文件但不查找 fortran 90 文件

c++ - 不应该应用的 makefile 规则

c++ - c++ tcpserver 可以接收无符号字符吗?

java - 编码性 : Condition in comfort

c++ - 编译器差异 : Interaction between alias resolution and name lookup

ctime() 返回一个字符串,为什么我们不需要 free() 这个字符串的内存?

java - 在数字前面添加数字

javascript - 在javascript中用逗号格式化字符串

java - 从字符串中获取字节