如何在C中修复“返回从指针目标类型中丢弃'const'限定词”

时间:2019-04-03 18:28:47

标签: c

正在努力重写string.h中定义的strchr方法。 而且我得到“从指针目标类型中返回丢弃'const'限定词”

char* strchr(const char* str, int character){
        int idx = 0;
        do{
                if (str[idx] == character){
                        return &str[idx]; // This line has the error
                }
                idx++;
        } while (str[idx] != '\0');

        return NULL;
} // any help would be great, thanks.

1 个答案:

答案 0 :(得分:0)

一些注意事项:

  1. 由于您无法更改原型,因此必须丢弃returnreturn (char *) &str[idx];中的const。
  2. 您的实现存在一个错误,请考虑如果调用strchr("", 'a')会发生。在进行NUL检查之前,您可以在循环体内增加idx,这样它将逐步超出字符串的末尾。