创建StrStr()函数

时间:2019-03-05 15:08:06

标签: c

这是我到目前为止编写的代码,但是我想用int myStrStr代替char myStrStr,但是当我用int代替char时,它给了我一个错误。请帮忙。

int my_strlen(const char *s1) {
    int i;
    for (i = 0; *s1; s1++, i++);
    return i;
}

char myStrStr(char * haystack, char * needle){
    int i;
    if(*needle =='\0')
        return (char *)haystack;
    else{
        for(;*haystack; haystack++){
            if(*haystack == *needle){
                for(i=1;*(haystack +i)==*(needle +i);i++);
                if(i==my_strlen(needle))
                    return (char *)haystack;
            }
        }
        return NULL;
    }
}

1 个答案:

答案 0 :(得分:1)

因为您返回了char*NULL。您不能将指针转换为非指针类型。 现在在编译时应该是错误的。您的函数应返回char*

由于int在内存中分配了更多空间,因此无法将char*强制转换为int*,因此必须重新分配内存,这必须手动完成。