【数据结构和算法】字符串遍历-BF算法
BF算法bf算法其实只是普通的模式匹配算法。BF算法的思想:将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。代码如下://BF算法遍历母字符串查找子字符串//mom:母串son:子串//mompos:母串遍历的位置...
·
BF算法
bf算法其实只是普通的模式匹配算法。
BF算法的思想:
将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
代码如下:
//BF算法遍历母字符串查找子字符串
//mom:母串 son:子串
//mompos:母串遍历的位置 sonpos:子串遍历的位置
//tempmompos:临时存储母串位置值
int FindZiString(const char* mom, const char* son)
{
int son_size = strlen(son);
int mom_size = strlen(mom);
printf("son_size = %d\n mom_size = %d\n", son_size,mom_size);
int mompos, sonpos;
int tempmompos;
for (mompos = 0; mompos <= mom_size - son_size ; mompos++)
{
for (sonpos = 0, tempmompos = mompos; sonpos < son_size; sonpos++)
{
if (*(son + sonpos) != *(mom + tempmompos + sonpos))
break;
if (sonpos == son_size - 1)
return tempmompos ;
}
}
return 0;
}
//测试代码:
int main()
{
char Big[256] = "sagsdhsfhf";
char Small[256] = "fhf";
int pos = FindZiString(Big, Small);
if (0 == pos)
printf("no this son");
else
printf("pos = %d\n", pos);
return 0;
}
结果如下:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)