普通匹配算法
#include<stdio.h>
void main()
{
int i=0,j=0,x=0;
char buf[]="abcdeflifgabcflfiaiafdaelifaalifeiafdhifeiasfelifeoi";
char buf1[]="lifei";
while(buf[i+4]!='\0')
{
if(buf1[0]==buf[i]) 判断字串第一个字符与父串第i个字符是否相同,寻找有肯能的字串位置。
{
while(buf[x+i]==buf1[x]&&x<5) 判断子串是否与父串i+4位相同
{
x++;
}
if(5==x) 相同输出存在,退出程序
{
printf("存在%d",i);
return ;
}
}
i++;
}
递归写法:
int ppselect(char buf[],char buf1[],int i,int j)
{
if(buf[i]=='\0')
{
printf("没有");
return 0;
}
if(j==4)
return i; j=4说明已经匹配i为当前位置;
if(buf1[j]==buf[j+i])
return ppselect(buf,buf1,i,j+1);
return ppselect(buf,buf1,i+1,0);