求大神帮忙看看我的这个字符串查找是不是KMP算法
本帖最后由 风中醉柳 于 2014-5-29 17:38 编辑#include<stdio.h>
int main(void)
{
char str1={'\0'},str2={'\0'};
int i=0,j=0,k;
printf("输入主串str1:");
scanf("%s",str1);
printf("输入子串str2:");
scanf("%s",str2);
while(str1)
{
j=0;
if(str1!=str2)
{
i++;
continue;
}
if(str1==str2)
{
i++;
j++;
if(str1!=str2)
{
j=0;
continue;
}
else
{
k=i;
while(str2)
{
i++;
j++;
if(str1==str2)
continue;
else
break;
}
if(str2=='\0')
printf("\n分析结果:\nstr2是str1的子串\n开始于str1的第 %d 号位置\n结束于str1的第 %d 号位置\n\n",k,i);
}
}
}
if(str2!='\0')
printf("\n分析结果:\nstr2不是str1的子串\n");
return 0;
}
附上贴图:
这应该不是KMP算法吧。。。KMP算法一个很关键性的标志是要求next数组的。。。 elvo 发表于 2014-5-30 10:51 static/image/common/back.gif
这应该不是KMP算法吧。。。KMP算法一个很关键性的标志是要求next数组的。。。
额 ,谢谢啦
页:
[1]