数据结构串的朴素模式匹配算法c语言实现
数据结构串的朴素模式匹配算法c语言实现
#include<stdio.h> #include<stdlib.h> #define maxsize 100 typedef struct { char data[maxsize]; int length; }string; void init(string &s){ //初始化 s.length=0; } void create(string &s){ init(s); char x; printf("请输入串($结束): "); scanf(" %c",&x);//前面加个空格防止把回车当成下一个串的输入 int i=1; while(x!=$){ s.data[i++]=x; s.length++; scanf(" %c",&x); } printf("串为 "); for(int i=1;i<=s.length;i++){ printf("%c ",s.data[i]); } printf(" "); } int index(string s,string t) { int i=1,j=1;//舍弃data[0]的空间 while(i<=s.length && j<=t.length) { if(s.data[i]==t.data[j]){ i++;j++; } else{ i=i-j+2; j=1; } } if(j>t.length){ printf("%d ",i-t.length); } else { printf("错误"); printf("%d %d",s.length,t.length); } } int main(){ string s,t; create(s);//创建母串 create(t);//创建子串 index(s,t);//朴素模式匹配 return 0; }
下一篇:
加拿大找工作有多卷?