字符串匹配算法 BF算法或者简单匹配

本文介绍了BF算法作为字符串匹配的基础方法,详细解释了其工作原理,并通过实例演示了如何实现该算法。此外,还提供了代码示例,帮助读者更好地理解和应用BF算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*字符串匹配算法   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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值