yuyi
知不可乎骤得,托遗响于悲风
(lldb) expression -- msg.rfind(' ')
error: expression failed to parse:
error::1:5: no matching member function for call to 'rfind'
msg.rfind(' ')
note: candidate function not viable: requires 2 arguments, but 1 was provided
代码中使用的代码
int pos = msg.rfind(" ") +1;
size_t rfind(char ch, size_t pos = npos) const;上面代码传入了第二个默认参数
函数 size_t rfind(char ch, size_t pos = npos) const; 是 C++ 标准库中 std::string 类的一个成员函数。这个函数用于查找指定字符 ch 在字符串中最后一次出现的位置,从字符串的一个指定位置 pos 开始向字符串开始方向搜索。下面详细解释这个函数的各个部分:
返回类型 - size_t:
size_t 是一个无符号整数类型,用于表示大小或索引。在这个函数中,它用来返回找到字符的位置索引。std::string::npos,通常是最大的 size_t 值,用来表示没有找到指定的字符。函数名称 - rfind:
rfind 代表“reverse find”,即从后向前查找。find 函数相对,后者是从字符串的前端开始向后搜索。参数列表:
char ch:这是要搜索的字符。函数将在字符串中搜索这个字符的最后一个出现。size_t pos = npos:这是一个默认参数,表示搜索的起始位置。npos 是 std::string 类中定义的一个常量,通常表示字符串的最大可能长度(size_t 的最大值)。如果不提供这个参数,搜索将从字符串的末尾开始。常量性 - const:
const 关键词,表示这个函数不会修改它所属的对象。即,调用 rfind 不会改变字符串的内容。这个函数是处理字符串时非常有用的工具,特别是当你需要确定某个字符或子字符串最后出现位置的场景。通过提供从后向前的搜索功能,rfind 使得字符串操作更加灵活,特别是在处理路径或特定格式数据时非常有帮助。
正确使用方法
(lldb) expression -- msg.rfind(' ', std::string::npos)
(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type) $2 = 3
(lldb)