1、和线性表的顺序存储结构相似,用一组地址连续的存储单元存储串值的字符序列。
2、————串的定长顺序存储表示————
#define MAXSTRLEN 255 //用户可在255以内定义最大串长
typedef unsigned char SString[MAXSTRLEN+1]//0号单元存放串的长度
3、串的实际长度可在这个预定义长度的范围内随意,超过预定义长度的串值则被舍弃,称为“截断”;
4、串连接 Concat(&T,S1,S2)
按照上述3的约定,对超出的部分实施“截断”操作。基于S1,S2的不同长度,有三种可能结果:
(1)、S1[0]+S2[0]<=MAXSTRLEN
(2)、S1[0]<MAXSTRLEN,但是S1[0]+S2[0]>MAXSTRLEN
(3)、S1[0]=MAXSTRLEN
算法如下:
Status Concat(SString &T,SString S1,SString S2){
if(S1[0]+S2[0]<=MAXSTRLEN)
{
T[1...S1[0]]=S1[1.....S1[0]];
T[S1[0]+1....S1[0]+S2[0]]=S2[1.....S2[0]];
T[0]=S1[0]+S2[0];
uncut=TRUE;
}
else if(S1[0]<MAXSTRLEN)