资源描述:
《数据结构实验5:串子系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、验证性实验5:串子系统班级学号012301114114姓名胡德文1.实验目的(1)掌握串的特点及顺序定长存储的方式。(2)掌握串的创建、连接、插入、删除、显示等操作。(3)掌握串的查找、取子字符串、比较串大小的操作(4)掌握模式匹配的基本思想及其算法。2.实验内容(1)由用户通过键盘输入建立一个字符串。(2)编写插入、删除、查找、比较、取子字符串、连接字符串、显示、模式匹配等程序。(3)设计一个选择式菜单,以菜单方式选择上述操作。串子系统*********************************************1------输入字串**
2、2------连接字串**3------取出子串**4------删除子串**5------插入子串**6------查找子串**7------比较串大小**8------显示字串**0------返回*********************************************请输入菜单选项(0--8):3.实验程序#include#defineSTRINGMAX100typedefstruct{charvec[STRINGMAX];intlen;}str;voidConcatStr(str*r1,str*r2){int
3、i;printf("ttr1=%sr2=%s",r1->vec,r2->vec);if(r1->len+r2->len>STRINGMAX)printf("t两个串太长,溢出!");else{for(i=0;ilen;i++)r1->vec[r1->len+i]=r2->vec[i];r1->vec[r1->len+i]='0';r1->len=r1->len+r2->len;}}voidSubStr(str*r,inti,intj){intk;stra;str*r1=&a;if(i+j-1>r->len){prin
4、tf("tt子串超界!");return;}else{for(k=0;kvec[k]=r->vec[i+k-1];r1->len=j;r1->vec[r1->len]=' ';}printf("tt取出字符为:");puts(r1->vec);}voidDelStr(str*r,inti,intj){intk;if(i+j-1>r->len)printf("tt所要删除的子串超界!");else{for(k=i+j;klen;k++,i++)r->vec[i]=r->vec[k];r->l
5、en=r->len-j;r->vec[r->len]=' ';}}str*InsStr(str*r,str*r1,inti){intk;if(i>=r->len
6、
7、r->len+r1->len>STRINGMAX)printf("tt不能插入!");else{for(k=r->len-1;k>=i;k--)r->vec[r1->len+k]=r->vec[k];for(k=0;klen;k++)r->vec[i+k]=r1->vec[k];r->len=r->len+r1->len;r->vec[r->len]=' ';}re
8、turnr;}intIndexStr(str*r,str*r1){inti,j,k;for(i=0;r->vec[i];i++)for(j=i,k=0;r->vec[j]==r1->vec[k];j++,k++)if(!r1->vec[k+1])returni;return-1;}intLenStr(str*r){inti=0;while(r->vec[i]!=' ')i++;returni;}str*CreateStr(str*r){gets(r->vec);r->len=LenStr(r);returnr;}intEqualStr(str*r1,
9、str*r2){for(inti=0;r1->vec[i]&&r2->vec[i]&&r1->vec[i]==r2->vec[i];i++);returnr1->vec[i]-r2->vec[i];}voidmain(){stra,b,c,d;str*r=&a,*r1;r->vec[0]=' ';charchoice,p;inti,j,ch=1;while(ch!=0){printf("");printf("tt串子系统");printf("tt*******************************************
10、**");printf("tt*1------输入字串*");printf("t