您的位置:首页 > 其它

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

2017-09-09 13:37 190 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串查找