用朴素查找算法实现串的查找(男朋友算法)

来源:互联网 发布:雷锋源越狱软件 编辑:程序博客网 时间:2024/06/05 09:55
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>//朴素查找算法(BF)俗称男朋友算法int BF(const char *str,const char *sub,int pos){    int lens = strlen(str);    int lensub = strlen(sub);    if(pos<0 || pos>=lens)    {        return -1;    }    int i = pos;    int j = 0;    while(i<lens && j <lensub)    {        if(str[i] == sub[j])        {            i++;            j++;        }        else//回退        {            i = i-j+1;            j = 0;        }    }    if(j>=lensub)    {        return i-j;    }    else     {        return -1;    }}int main(){    char *str="ababcabcdabcde";    char *sub="abcd";    printf("%d\n",BF(str,sub,3));    printf("%d\n",BF(str,sub,6));    printf("%d\n",BF(str,sub,10));    return 0;}

打印结果为:
5
9
-1