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类型的指针,复制的时候出错了。