BF算法语言简单实现

简介

用C语言简单实现了BF算法。

代码

#include <stdio.h>
#include <string.h>

//BF算法匹配字符串
int BFCompare(char *parent,char *child,int pos);

int main() {
    char * str1 = "--hello123---";
    char  * str2 = "he";
    printf("\"%s\"在\"%s\"中第一次出现的位置为:%d\n",str1,str2,BFCompare(str1,str2,1));
    return 0;
}

int BFCompare(char *parent,char *child,int pos)
{
    int i = pos - 1,j = 0;
    //主串长度
    int pLen = strlen(parent);
    //子串长度
    int cLen = strlen(child);

    while (i < pLen && j < cLen)
    {
       if(parent[i] == child[j])
       {
           i++;
           j++;
       } else{
           i = i - j + 1; //指针回溯
           j = 0;
       }
    }
    if(j >= cLen)
    {
       return i - cLen + 1;
    } else{
       return -1;
    }
}

运行截图

手机上阅读

本文由 giao创作, 采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文地址:《BF算法语言简单实现》

 最后一次更新于2019-02-14

0 条评论

添加新评论

Markdown is supported.