【发布时间】:2021-02-14 16:07:36
【问题描述】:
我正在做教授布置的练习。问题是: 编写函数 myStrChr()。该函数有两个参数:一个 const char * s 指向 C 风格字符串中的第一个字符,以及一个 char c。如果 c 没有出现在 s 中,则返回指向 c 出现在 s 中的第一次出现的指针和 nullptr (0)。
我一直在尝试,但仍然无法弄清楚如何修复错误:“从 const char* 到 char* 的无效转换”或“从 char* 到 const char* 的无效转换” 请教我修复它。
char* mystrChr(const char *s, char c)
{
size_t len{};
for (size_t i = 0; s[i] != '\0'; i++)
len++;
char *p = s;
for (size_t i = 0; i < len; i++)
{
if (s[i] == c)
p = &s[i];
else
p = nullptr;
}
return p;
}
【问题讨论】:
-
现在在任何你使用普通
char*的地方始终使用const char*。 -
stackoverflow.com/questions/3316562/… 是否回答了您的问题?
-
返回
const char *。 -
我确实将 p 从 char* 更改为 const char*。我仍然得到错误。你能举个例子更具体一点吗?
标签: c++ pointers return constants c-strings