数据结构实验5:串子系统_第1页
数据结构实验5:串子系统_第2页
数据结构实验5:串子系统_第3页
数据结构实验5:串子系统_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、验证性实验5:串子系统班级学号姓名胡德文1实验目的( 1)掌握串的特点及顺序定长存储的方式。( 2)掌握串的创建、连接、插入、删除、显示等操作。( 3)掌握串的查找、取子字符串、比较串大小的操作( 4)掌握模式匹配的基本思想及其算法。2实验内容( 1)由用户通过键盘输入建立一个字符串。( 2)编写插入、删除、查找、比较、取子字符串、连接字符串、显示、模式匹配等程序。( 3)设计一个选择式菜单,以菜单方式选择上述操作。串子系统*1-输入字串*2-连接字串*3-取出子串*4-删除子串*5-插入子串*6-查找子串*7-比较串 大 小*8-显示字串*0-返回*请输入菜单选项(0-8 ):3实验程序#i

2、nclude <stdio.h>#define STRINGMAX 100typedef struct char vec STRINGMAX; int len;str;void ConcatStr(str *r1,str *r2) int i;printf("nttr1=%s r2=%sn",r1->vec,r2->vec);if (r1->len+r2->len>STRINGMAX)printf("nnt两个串太长,溢出!n");else for (i=0;i<r2->len;i+)r1->v

3、ecr1->len+i=r2->veci;r1->vecr1->len+i='0'r1->len=r1->len+r2->len;void SubStr(str *r,int i,int j) int k; str a;str *r1=&a;if (i+j-1>r->len) printf ("ntt子串超界!n");return;elsefor (k=0;k<j;k+)r1->veck=r->veci+k-1;r1->len=j;r1->vecr1->len=

4、'0'printf("ntt取出字符为:");puts(r1->vec);void DelStr(str *r,int i,int j)int k;if(i+j-1>r->len)printf("ntt所要删除的子串超界!n");elsefor (k=i+j;k<r->len;k+,i+)r->veci=r->veck;r->len=r->len-j;r->vecr->len='0'str *InsStr(str *r,str *r1,int i)int k

5、;if(i>=r->len|r->len+r1->len>STRINGMAX)printf("ntt不能插入 !n");else for(k=r->len-1;k>=i;k-)r->vecr1->len+k=r->veck;for(k=0;k<r1->len;k+)r->veci+k=r1->veck;r->len=r->len+r1->len;r->vecr->len='0'return r;int IndexStr(str *r,str *r

6、1)int i,j,k;for(i=0;r->veci;i+)for(j=i,k=0;r->vecj=r1->veck;j+,k+)if(!r1->veck+1)return i;return -1;int LenStr(str *r)int i=0;while(r->veci!='0')i+;return i;str*CreateStr(str *r) gets(r->vec);r->len=LenStr(r);return r;int EqualStr(str *r1,str *r2)for(int i=0;r1->veci&

7、amp;&r2->veci&&r1->veci=r2->veci;i+);return r1->veci-r2->veci;void main()str a,b,c,d;str *r=&a,*r1;r->vec0='0'char choice,p;int i,j,ch=1;while(ch!=0)printf("n");printf("ntt串子系统");printf("ntt*");printf("ntt*1-输入字串*");pr

8、intf("ntt*2-连接字串*");printf("ntt*3-取出子串*");printf("ntt*4-删除子串*");printf("ntt*5-插入子串*");printf("ntt*6-查找子串*");printf("ntt*7-比较 串大小*");printf("ntt*8-显示字串*");printf("ntt*0-返回*");printf("ntt*");printf("ntt请选择菜单

9、号 (0-8): ");scanf("%c",&choice);getchar();if(choice='1')printf("ntt请输入一个字符串:");gets(r->vec);r->len=LenStr(r);else if(choice='2')printf("ntt请输入所要连接的串:");r1=CreateStr(&b);ConcatStr(r,r1);printf("ntt连接以后的新串值为:");puts(r->vec);

10、else if(choice='3')printf("ntt请输入从第几个字符开始:");scanf("%d",&i);getchar();printf("ntt请输入取出的连续字符数:");scanf("%d",&j);getchar();SubStr(r,i,j);else if(choice='4')printf("ntt请输入从第几个字符开始:");scanf("%d",&i);getchar();printf(

11、"ntt请输入删除的连续字符数:");scanf("%d",&j);getchar();DelStr(r,i-1,j);else if(choice='5')printf("ntt请输入在第几个字符前插入: ");scanf("%d",&i);getchar();printf("ntt请输入所要插入的字符串: ");r1=CreateStr(&b);InsStr(r,r1,i-1);else if(choice='6')printf(&qu

12、ot;ntt请输入所要查找的字符串: ");r1=CreateStr(&b);i=IndexStr(r,r1);if(i!=-1)printf("ntt第一次出现的位置是第%d个 .n",i+1);elseprintf("ntt该字串不在其中! n");else if(choice='7')printf("ntt请输入第一个串: ");gets(c.vec);printf("ntt请输入第二个串: ");gets(d.vec);int k=EqualStr(&c,&

13、d);if(k>0)printf("ntt第一个串大! n");else if(k<0)printf("ntt第二个串大! n");elseprintf("ntt两个串一样大!n");else if(choice='8')printf("ntt该串值为: ");if(r->vec0='0')printf("空! n");elseputs(r->vec);else if(choice='0')break;elseprintf(

14、"ntt请注意:输入有误!n");if(choice!='X'&&choice!='X')printf("ntt按【 Enter 】键继续,按任意键返回主菜单.");p=getchar();if(p!='xA')getchar();break;4程序运行5实验小结本章要求我们掌握的是字符串的创建、连接、删除、显示、查找、取子串和比较字符串大小。串的本质就是一种特殊的线性表, 而它的数据元素是由一个个字符组成的。 串的存储方式分为紧凑型和非紧凑型两种, 同时也了解了两种字符串的不同之处。 在这

15、一章的学习中了解了很多知识,增加了见解,拓宽了视野。在输入源代码的过程中巩固了串的运算,增强了记忆, 在编译的过程中难免有错误,不过也正是这些错误将我不理解的地方都暴露出来了,让我可以知道自己的弱点,可以加强对知识的理解。这也是每次实验的目的。所以,总的来说,本次实验还是成功的。其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。二培训的及要求培训目的安全生产目标责任书为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015 年度安全生产目标的内容,现与财务部 签订如下安

16、全生产目标:一、目标值:1 、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。2 、现金安全保管,不发生盗窃事故。3 、每月足额提取安全生产费用,保障安全生产投入资金的到位。4 、安全培训合格率为 100%。二、本单位安全工作上必须做到以下内容:1 、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。2 、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。3 、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。4 、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。5 、在公司及政府的安全检查中杜绝各类违章现象。6 、组织本部门积极参加安全检查,做到有检查、有整改,记录全。7 、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论