当前位置:文档之家› 字符串的模式匹配实验报告

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

实验题目:字符串的模式匹配
一、实验描述
用BF算法实现字符串的模式匹配
二、实验目的和任务
从主串的第pos位置字符开始和模式子串字符比较,如果相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式子串的字符比较。

直到找到匹配字符串或者是主串结尾。

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

四、运行与测试
#include <stdio.h>
#include <string.h>
int BFMatch(char *s,char *p)
{
int i,j;
i =0;
while(i < strlen(s))
{
j = 0;
while(s[i] == p[j] &&j<strlen(p))
{
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匹配算法。

虽然看起来很简单的程序,做起来却遇到了不少问题,编程中出行了一些小错误,多次查改之后再进行修改,所以我觉得在以后的学习中,我会更加注重实践,注重多练,多积累。

相关主题