概念
零个或者多个任意字符组成的有限序列
串中任意个连续字符组成的子序列(含空串)称为该串的子串
字符在序列中的序号为字符在串中的位置
子串位置:子串的第一个字符在主串的位置
空格串:由一个或者多个空格组成的串,与空串不同
串相等:长度相同,对应位置的字符相同
顺序串
typedef struct{
char ch[MAXLEN-1]; //存储串的一维数组
int length;
}SString; //顺序存储字符串
链串
typedef struct Chunk{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk;
typedef struct{
Chunk *head;
Chunk *tail;
int curlen;
}LString;
基本操作
字符串匹配
int Index_BF(SString S,SString T){
int i=1;
int j=1;
while(i<=S.length&&j<=T.length){
if(S.ch[i]==T.ch[j]){
i++;
j++;
}else{ //被查找串与模式串指针游标回溯
i=i-j+2;
j=1;
}
}
if(j>=T.length){
return i-T.length; //返回匹配成功后的匹配的第一个字符的下标
}else{
return 0;
}
}