C语言实现串的匹配算法

来源:互联网 发布:手游运营数据 编辑:程序博客网 时间:2024/05/16 19:03
#include <stdio.h>
#include <string.h>
int  index(char str1[],char str2[])//串的模式匹配
{
int i=0,j=0;
while((i<strlen1(str1))&&(j<strlen1(str2)))
{
if(str1[i]==str2[j])
{
++i;
++j;
}
else 
{
i=i-j+2;
j=1;    //指针回溯,重新开始匹配;
}
}
if(--j<strlen1(str2))
return i-j;
else return 0;
}


int strlen1(char s[])
{
int i=0;
while(s[i]!='\0')i++;
return(i);
}


int main (int argc,char*argv[])
{
char str1[20];


char str2[20];
printf("input str1:\n");
scanf("%s",str1);
printf("input str1:\n");
scanf("%s",str2);
printf("%d\n",index(str1,str2));
return 0;
}
0 0