字符串的模式匹配实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目:字符串的模式匹配

一、实验描述

用BF算法实现字符串的模式匹配

二、实验目的和任务

从主串的第pos位置字符开始和模式子串字符比较,如果相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式子串的字符比较。直到找到匹配字符串或者是主串结尾。

三、概要设计

BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。

四、运行与测试

#include

#include

int BFMatch(char *s,char *p)

{

int i,j;

i =0;

while(i < strlen(s))

{

j = 0;

while(s[i] == p[j] &&j

{

i++;

j++;

}

if(strlen(p) == j)

{

return i - strlen(p);

}

i = i - j + 1; // 指针i回溯

}

return -1;

}

int main()

{

char *szSource = "ababcababa";

char *szSub = "ababa";

int index =BFMatch(szSource, szSub);

printf("目标串包含匹配串的起始位置:%d",index);

}

五、运行结果

六、实验心得

通过这次课程设计,让我了解了字符串的定位操作即字符串模式匹配的基本概念和算法,探讨了字符串模式匹配操作的最基本的BF匹配算法。虽然看起来很简单的程序,做起来却遇到了不少问题,编程中出行了一些小错误,多次查改之后再进行修改,所以我觉得在以后的学习中,我会更加注重实践,注重多练,多积累。

相关文档
最新文档