使用直接遍历的办法就可以AC
int strStr(char* haystack, char* needle) {
int i,k,lenHaystack,lenNeedle,flag;
lenHaystack=strlen(haystack);
lenNeedle=strlen(needle);
flag=1;
if(lenNeedle==0)
return 0;
for(i=0;i<=lenHaystack-lenNeedle;i++)
{
flag=1;
if(haystack[i]==needle[0])
{
for(k=0;k<lenNeedle;k++)
{
if(haystack[i+k]==needle[k])
;
else
{
flag=0;
break;
}
}
if(flag==1)
return i;
}
}
return -1;
}
但是这个办法比较傻瓜,有一些比较经典的模式匹配算法可以参考,但是比较复杂
KMP算法:http://blog.csdn.net/joylnwang/article/details/6778316/
Sunday算法:http://blog.csdn.net/qq575787460/article/details/40866661