70,020
社区成员




#include<stdio.h>
/*返回t在s中的位置*/
int strindex(char *s,char *t)
{
char *b = s;
char *p,*r;
for(; *s !='\0'; s++){
for(p = s, r = t; *r && *p == *r; p++, r++)
;
if(r > t && *r=='\0')
return s - b;
}
return -1;
}
int main(void)
{
char *str = "helloworld";
char *sub_str = "ld";
printf("pos = %d\n", strindex(str, sub_str));
return 0;
}
没有什么问题,返回负值,你要看这个负值是不是-1,若字串在主串里,那么返回的不可能是赋值,因为s - b不会得负值,除非没有找到字串;
如果是返回-1,并且你认为是在主串里,那么可以发一下你的测试用例。