实验六:实现串的基本操作(2学时)
本次实验的主要目的是熟悉串类型的实现方法。
(一) 问题描述
如果语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及串操作的仍旧系统时,用户必须自己实现串类型。试写一个实现串类型基
(二) 基本要求
在教科书4.2.2节用堆分配存储表示实现Hstring串类型的最小操作子集的基础上,实现串抽象数据类型的其余基本操作(不使用C语言本身提供的串函数)。
(三) 测试数据
1. 用StrAssign生成S1=’THIS IS A BOOK’,S2=’S’,S3=’ESE ARE’
用SubString(S,S1,3,7)求出S=’IS IS A’
用ConCat(T,S1,S2)求出T=’THIS IS A BOOKS’
用Replace(T,S,S3)求出T=’THESE ARE BOOKS’(选做)
2. 用StrAssign生成U=’XYXYXYXYXYXY’,W=’w’
用SubString(V,U,6,3)求出V=’YXY’
用Replace(U,V,W)求出U=’XWXWXW’
(四) 实现提示
注意参照课本76—77页,对Replace函数的设计要详加考虑。
Status StrAssign(HString *t,char *chars){
/*生成一个其值等于串常量chars的串T*/
inti,j;
char*c;
if(t->ch)free(t->ch);/*释放T原有空间*/
for(i=0,c=chars;c[i]!='\0';i++);/*求chars的长度*/
if(!i){t->ch=NULL;t->length=0;}
else{
t->ch=(char *)malloc(i *sizeof(char));
if(!(t->ch))
exit(OVERFLOW);
for(j=0;j<i;j++)
t->ch[j]=chars[j];
t->length=i;
}
returnOK;
}
其他函数自己修改

