首页 > 代码库 > BF算法
BF算法
BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。
1 //BF算法 2 #include <iostream> 3 4 using namespace std; 5 6 int main(){ 7 char dst[] = "ababa"; 8 char src[] = "ababcababa"; 9 int ptr_src = http://www.mamicode.com/0, ptr_dst = 0, index = 0; //index源子串在目标串中的位置 10 int temp;11 bool found = true;12 cout<<sizeof(src)<<endl<<sizeof(dst)<<endl<<(sizeof(src) - sizeof(dst))<<endl;13 14 while(ptr_src <= (sizeof(src) - sizeof(dst))){ //遍历完目标子串 注意这儿要<=才行15 temp = ptr_src;16 found = true;17 ptr_dst = 0; 18 19 //每一次的查找20 while(ptr_dst < sizeof(dst)){21 //如果有不相等的22 if(src[ptr_src] != dst[ptr_dst]){23 found = false;24 break; //found置为false,开始回朔25 }26 ptr_src++;27 ptr_dst++;28 }29 if(found) //查找到了30 {31 index = temp;32 break;33 }34 ptr_src = http://www.mamicode.com/temp + 1;35 }36 if(found){37 cout<<"查找成功,首次出现的位置为:"<<index<<endl;38 }39 else40 cout<<"查找失败"<<endl;41 42 return 0;43 }
BF算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。