You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++报错invalid conversion from 'char' to 'const char*'解决求助

报错原因

你定义的函数返回值类型为const char*(指向字符的常量指针),但找到匹配字符时的返回语句return haystack[i];返回的是单个char类型的字符值,两类类型不匹配,编译器无法完成隐式转换,因此抛出对应错误。

修复方法

将匹配成功后的返回语句修改为返回对应位置的指针即可,两种等价写法二选一:

  • 写法1:return &haystack[i]; 直接取数组第i位元素的内存地址
  • 写法2:return haystack + i; 通过指针偏移得到对应位置的地址
优化后的完整参考代码

可以删除冗余的no变量简化逻辑,同时建议修改函数名避免和标准库自带的strchr冲突:

const char *my_strchr(const char *haystack, const char needle) {
  int i = 0;
  while (haystack[i] != '\0') {
    if (haystack[i] == needle) {
      return &haystack[i];
    }
    i++;
  }
  // 遍历完整个字符串未找到匹配项,返回空指针
  return nullptr;
}

内容的提问来源于stack exchange,提问作者goby gonagle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:15:03