定长顺序存储表示
#define Maxsize 255
typedef struct {
char ch[Maxsize];
int length;
}Sstring;
堆分配存储表示
typedef struct{
char *ch;
int length;
}
基本操作
StrAssign(&T,chars):赋值
StrCopy(&T,S):复制S到T
StrEmpty(S):判空
StrCompare(S,T):比较,若S>T,返回值>0, 若S<T,返回值=0
StrLength(S):求串长
SubString(&Sub,S,pos,len):求子串,用Sub返回S中第pos开始的长len的子串
Concat(&T,S1,S2):把S1 S2串起来用T返回
Index(S,T):S中是否存在T,如存在返回第一次出现的位置,不存在返回0
ClearString(&S):清空内容
DestoryString(&S):销毁串
KPM算法/主要考求next数组啥的
next[1]=0 next[2]=1 这两个是一定的
nextval数组是经过优化后 如果 序号j=3,next[3]=1,又因为1和3的模式串相同
所以把1的next值赋给3的nextval