该文章主要介绍串的顺序存储结构以及相关运算。
头文件:SqString.h
#ifndef SQSTRING_H_
#define SQSTRING_H_
#include <iostream>
const int MaxSize = 100;
class SqStringClass //顺序串类
{
char *data; //存放串中元素
int length; //串中字符个数
public:
//===================顺序串的基本运算算法=================
SqStringClass(); //构造函数
~SqStringClass(); //析构函数
SqStringClass &operator=(char *cstr); //重载赋值运算符
SqStringClass &operator=(SqStringClass &t); //重载赋值运算符
int StrLength(); //求串长度
SqStringClass &operator+(SqStringClass &t); //串连接
SqStringClass &SubStr(int i, int j); //求子串
SqStringClass &InsStr(int i, SqStringClass &s); //串插入
SqStringClass &DelStr(int i, int j); //串删除
SqStringClass &RepStr(int i, int j, SqStringClass &s);//串替换
void DispStr(); //串输出
//===================顺序串的其他运算算法===================
friend bool StrEqueal(SqStringClass &s, SqStringClass &t);//比较两个串是否相等
friend int Strcmp(SqStringClass &s, SqStringClass &t);//比较两个串的大小 <:-1 =:0 >:1
//===================顺序串的串匹配运算算法================
//以下为BF算法(暴力匹配)的友元函数声明
friend int Index(SqStringClass &s, SqStringClass &t);
//以下为KMPF算法的友元函数声明
friend void GetNext(SqStringClass &t, int next[]);
friend int KMPIndex(SqStringClass &s, SqStringClass &t);
};
#endif