一、串的相关概念
1、串的定义:零个或多个任意字符组成的有限序列。
2、空串一般用∅表示。
3、串相等:当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。所有空串是相等的。
4、串的类型定义:
ADT String {
数据对象:.......
数据关系:.......
基本操作:
(1) StrAssign (&T,chars) //串赋值
(2) StrCompare (S,T) //串比较
(3) StrLength (S) //求串长
(4) Concat(&T,S1,S2) //串连接
(5) SubString(&Sub,S,pos,len) //求子串
(6) StrCopy(&T,S) //串拷贝
(7) StrEmpty(S) //串判空
(8) ClearString (&S) //清空串
(9) Index(S,T,pos) //子串的位置
(11) Replace(&S,T,V) //串替换
(12) Strlnsert(&S,pos,T) //子串插入
(12) StrDelete(&S,pos,len) //子串删除
(13) DestroyString(&S) //串销毁
}ADT String
二、串的存储结构
1、串的链式存储结构——块链结构
#define CHUNKSIZE 80 //块的大小可由用户定义
typedef struct Chunk{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk;
typedef struct{
Chunk *head,*tail; //串的头指针和尾指针
int curlen; //串的当前长度
}LString; //字符串的块链结构
2、串的顺序存储结构
#define MAXLEN 255
typedef struct{
char ch[MAXLEN+1]; //存储串的一维数组
int length; //串的当前长度长度
}SString;