串的存储结构
串的顺序存储
//短串的顺序存储结构
#define MAXLEN 24
typedef struct{
char base[MAXLEN];//栈数组
//0号元素存串长
//除结束符外最多22字符
}SString;
//长串的顺序存储结构
typedef struct{
char *base; //堆数组
int capacity; //堆容量
int size; //串长度
}HString;
串的链式存储
#define CHUNKSIZE 80
typedef struct Chunk{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk;
typedef struct{
Chunk *head,*tail;
int curlen; //串长
}LString;
模式匹配算法
模式匹配的BF算法(Brute-Force 蛮力算法)
int StringMatch_BF( String T, String W ){
int i = 1, j = 1;
while ( i <= T.size && j <= W.size){
if ( T.base[i] == W.base[j] ){ ++i; ++j; }
else if( j==1 ) i++;
else{
i = i - j + 2 ; j = 1;
}
}
if ( j > W.size ) return i-W.size;
else return 0;
}
KMP算法(重要)