




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./验证性实验5:串子系统班级学号姓名胡德文1.实验目的〔1掌握串的特点及顺序定长存储的方式。〔2掌握串的创建、连接、插入、删除、显示等操作。〔3掌握串的查找、取子字符串、比较串大小的操作〔4掌握模式匹配的基本思想及其算法。2.实验内容〔1由用户通过键盘输入建立一个字符串。〔2编写插入、删除、查找、比较、取子字符串、连接字符串、显示、模式匹配等程序。〔3设计一个选择式菜单,以菜单方式选择上述操作。串子系统 ******************************************** *1输入字串* *2连接字串* *3取出子串* *4删除子串* *5插入子串* *6查找子串* *7比较串大小* *8显示字串* *0返回* ********************************************请输入菜单选项〔0--8:实验程序#include<stdio.h>#defineSTRINGMAX100typedefstruct{charvec[STRINGMAX];intlen;}str;voidConcatStr<str*r1,str*r2>{inti;printf<"\n\t\tr1=%sr2=%s\n",r1->vec,r2->vec>;if<r1->len+r2->len>STRINGMAX>printf<"\n\n\t两个串太长,溢出!\n">;else{for<i=0;i<r2->len;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>{printf<"\n\t\t子串超界!\n">;return;}else{for<k=0;k<j;k++>r1->vec[k]=r->vec[i+k-1];r1->len=j;r1->vec[r1->len]='\0';}printf<"\n\t\t取出字符为:">;puts<r1->vec>;}voidDelStr<str*r,inti,intj>{intk;if<i+j-1>r->len>printf<"\n\t\t所要删除的子串超界!\n">;else{for<k=i+j;k<r->len;k++,i++>r->vec[i]=r->vec[k];r->len=r->len-j;r->vec[r->len]='\0';}}str*InsStr<str*r,str*r1,inti>{intk;if<i>=r->len||r->len+r1->len>STRINGMAX>printf<"\n\t\t不能插入!\n">;else{for<k=r->len-1;k>=i;k-->r->vec[r1->len+k]=r->vec[k];for<k=0;k<r1->len;k++>r->vec[i+k]=r1->vec[k];r->len=r->len+r1->len;r->vec[r->len]='\0';}returnr;}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]!='\0'>i++;returni;}str*CreateStr<str*r>{gets<r->vec>;r->len=LenStr<r>;returnr;}intEqualStr<str*r1,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]='\0';charchoice,p;inti,j,ch=1;while<ch!=0> { printf<"\n">; printf<"\n\t\t串子系统">; printf<"\n\t\t*********************************************">; printf<"\n\t\t*1输入字串*">; printf<"\n\t\t*2连接字串*">; printf<"\n\t\t*3取出子串*">; printf<"\n\t\t*4删除子串*">; printf<"\n\t\t*5插入子串*">; printf<"\n\t\t*6查找子串*">; printf<"\n\t\t*7比较串大小*">; printf<"\n\t\t*8显示字串*">; printf<"\n\t\t*0返回*">; printf<"\n\t\t*********************************************">; printf<"\n\t\t请选择菜单号<0--8>:">;scanf<"%c",&choice>;getchar<>;if<choice=='1'>{printf<"\n\t\t请输入一个字符串:">;gets<r->vec>;r->len=LenStr<r>;}elseif<choice=='2'>{printf<"\n\t\t请输入所要连接的串:">;r1=CreateStr<&b>;ConcatStr<r,r1>;printf<"\n\t\t连接以后的新串值为:">;puts<r->vec>;}elseif<choice=='3'>{printf<"\n\t\t请输入从第几个字符开始:">;scanf<"%d",&i>;getchar<>;printf<"\n\t\t请输入取出的连续字符数:">;scanf<"%d",&j>;getchar<>;SubStr<r,i,j>;}elseif<choice=='4'>{printf<"\n\t\t请输入从第几个字符开始:">;scanf<"%d",&i>;getchar<>;printf<"\n\t\t请输入删除的连续字符数:">;scanf<"%d",&j>;getchar<>;DelStr<r,i-1,j>;}elseif<choice=='5'>{ printf<"\n\t\t请输入在第几个字符前插入:">; scanf<"%d",&i>; getchar<>; printf<"\n\t\t请输入所要插入的字符串:">; r1=CreateStr<&b>; InsStr<r,r1,i-1>;}elseif<choice=='6'>{ printf<"\n\t\t请输入所要查找的字符串:">; r1=CreateStr<&b>; i=IndexStr<r,r1>; if<i!=-1> printf<"\n\t\t第一次出现的位置是第%d个.\n",i+1>; else printf<"\n\t\t该字串不在其中!\n">;}elseif<choice=='7'>{ printf<"\n\t\t请输入第一个串:">; gets<c.vec>; printf<"\n\t\t请输入第二个串:">; gets<d.vec>; intk=EqualStr<&c,&d>;if<k>0>printf<"\n\t\t第一个串大!\n">;elseif<k<0>printf<"\n\t\t第二个串大!\n">;elseprintf<"\n\t\t两个串一样大!\n">;}elseif<choice=='8'>{printf<"\n\t\t该串值为:">;if<r->vec[0]=='\0'>printf<"空!\n">;elseputs<r->vec>;}elseif<choice=='0'>break;elseprintf<"\n\t\t请注意:输入有误!\n">;if<choice!='X'&&choice!='X'>{printf<"\n\t\t按[Enter]键继续,按任意键返回主菜单.">;p=getchar<>;if<p!='\xA'>{getchar<>;break;}}}}4.程序运行实验小结本章要求我们掌握的是字符串的创建、连接、删除、显示、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤制合成气生产中工艺安全风险识别与评估考核试卷
- 液压元件试验方法与标准考核试卷
- 林业碳汇与碳排放权交易考核试卷
- 人工智能在法律领域的应用考核试卷
- 公寓别墅商铺销售合同范例
- 全国授权合同标准文本
- 清洁电器产品的市场定位与竞争策略考核试卷
- 焙烤食品制造行业发展模式创新考核试卷
- 加盟合作经营合同范例
- 借贷债权转让合同范例
- 2022年全国交通运输行业城市轨道交通列车司机职业技能大赛参考题库
- 3d3s门式钢架 入门教程
- 储能技术-氢储能
- 《看看我们的地球》阅读测试题及答案
- 2023年中央宣传部直属单位招考聘用88人模拟预测试卷【共500题含答案解析】
- 锅炉炉管“四管泄漏”的原因
- 胃结石护理查房课件
- GB/T 18337.1-2001生态公益林建设导则
- 院感手卫生培训课件
- (山东科技大学)PTA数据结构答案与解析-363
- 失眠认知行为治疗课件
评论
0/150
提交评论