/**
* 实验题目:
* 实现顺序串的各种模式匹配算法
* 实验目的:
* 掌握串的模式匹配算法即BF(Brute Force)和KMP(克努特-莫里斯-普拉特)算法设计
* 实验内容:
* 实现顺序串的各种模式匹配运算
* 1、建立目标串s="abcabcdabcdeabcdefabcdefg"和模式串s1="abcdeabcdefab"
* 2、采用BF简单匹配算法求t在s中的位置
* 3、由模式串t求出next数组值和nextval数组值
* 4、采用KMP算法求t在s中的位置
* 5、采用改进的KMP算法求t在s中的位置
*/
#include <stdio.h>
#define MAX_SIZE 100
typedef struct
{
char data[MAX_SIZE]; // 串中字符
int length; // 串长
}SqString; // 声明顺序串类型
/*-----------------将字符串常量赋给串s--------------------*/
static void str_assign(SqString &s, char cstr[])
{
int i;
for(i = 0; cstr[i] != '\0'; i++)
s.data[i] = cstr[i];
s.length = i;
}
/*-----------------销毁串--------------------*/
static void destroy_str(SqString &s)
{
}
/*-----------------输出串s--------------------*/
static void disp_str(SqString s)
{
int i;
if(s.length > 0)
{
for(i = 0; i < s.length; i++)
printf("%c", s.data[i]);
printf("\n