TypechoJoeTheme

鱼一的博客 ◡̈

yuyi

知不可乎骤得,托遗响于悲风
网站页面
标签搜索
文章目录
c++

Xcode中lldb调试问题

函数重载不同

(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 开始向字符串开始方向搜索。下面详细解释这个函数的各个部分:

  • 函数组成
  1. 返回类型 - size_t

    • size_t 是一个无符号整数类型,用于表示大小或索引。在这个函数中,它用来返回找到字符的位置索引。
    • 如果字符没有找到,函数返回一个特殊值 std::string::npos,通常是最大的 size_t 值,用来表示没有找到指定的字符。
  2. 函数名称 - rfind

    • rfind 代表“reverse find”,即从后向前查找。
    • 这与 find 函数相对,后者是从字符串的前端开始向后搜索。
  3. 参数列表

    • char ch:这是要搜索的字符。函数将在字符串中搜索这个字符的最后一个出现。
    • size_t pos = npos:这是一个默认参数,表示搜索的起始位置。nposstd::string 类中定义的一个常量,通常表示字符串的最大可能长度(size_t 的最大值)。如果不提供这个参数,搜索将从字符串的末尾开始。
  4. 常量性 - 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) 
赞(0)
版权属于:

鱼一的博客 ◡̈

本文链接:

https://yuyi.monster/archives/243/(转载时请注明本文出处及文章链接)

评论 (0)

More Info for me 📱

IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月