串的类型定义
ADT String{
数据对象:D={a,|a,∈CharacterSet,i=1,2,…,n,n≥O}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,…,n}
基本操作:
(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
串的顺序存储结构
#define MAXLEN 255
typedef struct{
char ch[MAXLEN+1]; //存储串的一维数组
int length; //串的当前长度长度
}SString;
串的链式存储结构
#define CHUNKSIZE 80 //块的大小可由用户定义
typedef struct Chunk{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk;
typedef struct{
Chunk *head,*tail; //串的头指针和尾指针
int curlen; //串的当前长度
}LString; //字符串的块链结构