/*字符串匹配算法 BF算法或者简单算法*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int BF(char S[],char T[]){
int i=0,j=0;//i指向S,j指向T
int length_s=strlen(S),length_t=strlen(T);
//printf("%d %d\n",length_s,length_t);
while(i<length_s&&j<length_t){
//printf("%c %c\n",S[i],T[j]);
if(S[i]==T[j]){
i++;
j++;
}else{
i=i-j+1;//i回溯到下一个元素开始匹配
j=0;
}
}
//匹配结束
if(j>=length_t){
i=i-j;//i回溯到当前匹配的开始地方
return i;
}
return 0;
}
int main(){
char s[100],t[100];
printf("请输入待匹配字符串:");
scanf("%s",s);
/*
int length=strlen(s);
for(int x=0;x<length;x++){
printf("%c ",s[x]);
}
*/
printf("请输入匹配字符串:");
scanf("%s",t);
int i=BF(s,t);
printf("i=%d",i);
if(i){
printf("从第%d个字符开始",i);
}
}
字符串匹配算法 BF算法或者简单匹配
最新推荐文章于 2024-08-12 16:46:12 发布