请问这个在主字符串中查找是否包含子字符串的函数哪里出错了?

char * string_in(char m,char s)
{
int i=0;
int count=0;
while((
(m+i))!='\0')
{
if(
(m+i)==s[0]){
while((s+count)!='\0')
{
if(
(m+i+count)!=(s+count)){
break;
}
count++;
}
if(
(s+count)=='\0'){
return m+i;
}else
{
count=0;
}
}
i++;
}

return NULL;

}

你把外部调用代码也贴出来吧,我测试一下没有错啊。

char * string_in(char *m,char *s)
{
    int i=0;
    int count=0;
    while((*(m+i))!='\0')
    {
        if(*(m+i)==s[0]){
            while(*(s+count)!='\0')
            {
                if(*(m+i+count)!=*(s+count)){
                    break;
                }
                count++;
            }
            if(*(s+count)=='\0'){
                return m+i;
            }else
            {
                count=0;
            }
        }
        i++;
    }

    return NULL;
}

int main()
{
    char s[] = "hello";
    char p[] = "el";
    char *q = string_in(s,p);
    printf("%s",q);
    return 0;
}

函数的参数是指向char类型的指针,复制的时候出错了。