版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告课程数据结构实验名称顺序串基本操作院系电信学院专业班级计科10—4姓名学号一、实验目的1)熟悉串的定义和串的基本操作。2)掌握顺序串的基本运算。3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有VisualC++6.0的计算机。本次实验共计2学时。三、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:编写串的基本操作函数顺序串类型定义如下所示:lypedefstruct{charch[MAX];inilength;
longth=StrLength(tl);〃求串11的长度printf("串t1的长度为:%d\n",1ongth);。printf("串s:*');®DispStr(s);§s§s2=1nsStr(s,9,sl);§s2=1nsStr(s,9,sl)§s2=1nsStr(s,9,sl);//将串s1插入串s的第9个位置,得串s2printf("串s2:");oDispStr(s2);oDispStr(s2);oDispStr(s2);//输出串oDispStr(s2);//输出串s2s3s3s3=DelStr(s,2,5);//删除ss3s3=DelStr(s,2,5);//删除s第2个字符开始的5个字符而产生串s3,并输出sprindT串s3:H);DispStr(s3);DispStr(s3);//输出串DispStr(s3);//输出串s3s4=RepStr(s,2,5»si);s4=RepStr(s,2,5»si);//用串sis4=RepStr(s,2,5»si);//用串si替换串s中从第2个字符起连续5个字符得到新串printf("串s4:M);DispStr(s4);DispStr(s4);〃输出串DispStr(s4);〃输出串s4s5=SubStr(s,2,10);//提取串s中第2个字符开始的10个字符而产生串s5printf("串s5:”);«DispStr(s5)«DispStr(s5);«DispStr(s5);«DispStr(s5);〃输出串s5s6=Concai(s1,t);〃连接串si和l而产生串s6printf(“串s6:");ssDispS(r(s6);sDispS(r(s6);sDispS(r(s6);//输出串s6same=StrEqual(sl,s5);//判断si、s5是否相等if(same==1)printf(“串s1、s5相等!”);elseprintf(“串s1、s5不相等!");kong=IsEmpty(s3);//判断s3是否为空if(kong==1)prinlf("\n串s3为空!");elseprintf("\n串s3不为空八n");}SeqString;(1)串赋值Assign(s,t)将一个字符串常量赋给串s,即生成一个其值等于t的串s(2)串复制StrCopy(sj)将串t赋给串s(3)计算串长度StrLength(s)返回串s中字符个数(4)判断串相等StrEquaKs,t)若两个用s与t相等则返回1;否则返回Oo(5)串连接Coneat(s,t)返回由两个串s和t连接在一起形成的新事。(6)求子串SubStr(s,i,j)返回串s中从第i(lWiWStrLength(s))个字符开始的、由连续j个字符组成的子串。(7)插入InsStr(s,i,t)将串t插入到串s的第i(lWiWStrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新申(8)串删除DelStr(sj.j)从串s中删去从第i(lWiWStrLength(s))个字符开始的长度为j的子串,并返回产生新串。(9)串替换RepStr(s,sl,s2)在串s中,将所有出现的子串s1均替换成s21,(10)输出串DispStr(s)输出串s的所有元素值(ID判断串是否为空IsEmpty(s)为空返回1,不为空返回0编写主函数调用上述函数实现下列操作:建立串s="abcdefghijklmn”,串sl=“xyz”,串t=“hijk”复制串t到tl,并输出U的长度(3)在申s的第9个字符位置插入用si而产生串s2,并输出s2(4)删除s第2个字符开始的5个字符而产生串S3,并输出s3(5)将用s第2个字符开始的3个字符替换成用si产生串s4,输出s4提取串s的第2个字符开始的10个字符而产生串s5,并输出s5将串si和串t连接起来而产生串s4,并输出s4比较串si和s5是否相等,输出结果(9)判断s3是否为空四、源程序代码include<stdio.h>defineMAX100typedefstruct(charch[MAX];nt1ength;)SqString;voidStrAssign(SqString&s,chart[])〃串赋值ofor(i=O;t[i]!='\0';i++)s.ch[i]=t[i];sJength=i;)voidStrCopy(SqString&s,SqStringt)//串复制(。inti;for(i=0;i<t.1ength;i++)*s.ch[i]=t.ch[i];«s.length=t.1ength;)intStrEqual(SqStrings,SqStringt)//判断串相等(intsame=l,i;if(s.length!=t,length){osame=0;0)oe1$e{for(i=0;i<s.length;i++)。if(s.ch[i]!=t.ch[i]){s8same=0;abreak;°)return(same);intStrLcngth(SqStrings)//计算串长度(return(s.lcngth);)SqStringConeat(SqStrings,SqStringt)〃串连接(aSqStringstr;inti;str.1ength=s.length4-t.length;◎for(i=O;i<s.1ength;i++)str.ch[i]=s.ch[i];for(i=0;i<t.length;i++)◎str.ch[s.iength+i]=t.ch[i];returnstr;}SqStringSubStr(SqStrings,inti,intj)//求子串(oSqStringstr;intk;«str.length=0;if(i<=0|Ii>s.Iength|[j<0||i4-j—l>s.length)^returnstr;ofor(k=i-1:k<i+j-l;k++)®str.ch[k-i+1]=s.ch[k];str.1ength=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2)〃插入(intj;6qStringstr;ostr.length=0;f(i<=0||i>sl.length+1)odrcturnstr;»for(j=0;j<i-1;j++)8str.ch[j]=s1.ch[j];for(j=0;j<s2.1ength;j++)^str.ch[i+j-1]=s2.ch[j];0for(j=i-l;j<s1.Iength;j++)®str.ch[s2.1ength+j]=sl.ch[j];astr.length=s1.length+s2.1ength;returnstr;ISqStringDe1Str(SqStrings,inti,intj)〃删除(ointk;SqSlring«str.length=0;Af(i<=0I|i>s.lenglh|Ii+j>s.1ength+1)sreturnstr;。for(k=0;k<i-l;k++)®str.ch[k]=s.ch[kJ:。for(k=i+j-1;k<s.length;k++)8str.ch[k-j]=s.ch[k];«str.length=s.length-j;returnstr;)SqStringRepStr(SqStrings,inti,intj,SqStringt)//替换(ntk;eSqStringstr;§str.lcngth=O:aif(i<=0||i>s.1ength||i+j—1>s.1ength)returnstr;ofor(k=0;k<i-l;k++)«str.ch[k]=s.ch[k];«for(k=O;k<t.1ength;k++)str.ch[i+k-l]=t.ch[k];9for(k=i+j-l;k<s.1ength;k++)str.chft.length+k—j]=s.chfk];«str.lcngth=s.length-j+t.lcngth;eturnstr;)voidDispstr(SqStrings)//输出率所有元素,if(s.length>0){for(i=0;i<s.length;i++)oooprintf("%c",s.ch[i]);oprintfCXn");0))intIsEmpty(SqStrings)//判断串是否为空(f(s.length>0)return0;〃不为空else//为空intmain(void)voidStrAssign(SqString&s,chart[]);//串赋值0VoidStrCopy(SqString&s,SqStringt);〃串药制intStrEqual(SqStrings,SqStringt);//判断串相等intStrLength(SqStrings);//计算串长度SqSiringConcal(SqStrings,SqStringt);〃串连接SqStringSubStr(SqStrings,inti,intj);//求子串SqStringInsStr(SqStrings1,inti,SqStrings2);//插入SqStringDelStr(SqStrings,inti,intj);//删除SqStringRepStr(SqStrings,inti,intj,SqStringt);//替换voidDispStr(SqStrings);〃输出串所有元素intisEmpty(SqStrings);//判断串是否为空ocharchl[]-'abedefghijk1mn",ch2[]=Mxyz0,ch3[]="hijk";aSqStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中化石油广东有限公司招聘备考题库及一套完整答案详解
- 2026年常州市教育系统“优才计划”公开招聘教师备考题库及答案详解参考
- 2025年南海经济开发区人民医院招聘事业单位聘用制(编制)工作人员备考题库(第二批)参考答案详解
- 2026年广安市武胜县公证处招聘非在编公证员助理的备考题库附答案详解
- 2026年广东省广业检验检测集团有限公司面向社会招聘党群人力部(董事会办公室)董办经理备考题库及1套参考答案详解
- 2026年卢阿拉巴铜冶炼股份有限公司招聘备考题库附答案详解
- 2026年中国中医科学院望京医院公开招聘国内应届高校毕业生(提前批)备考题库及一套参考答案详解
- 2026年台州市椒江区进出口企业协会公开招聘编外工作人员备考题库及完整答案详解1套
- 2026年古田县人力资源和社会保障局关于公布古田县事业单位公开招聘紧缺急需人才26人计划的备考题库及参考答案详解
- 2026年北矿新材科技有限公司招聘备考题库及一套答案详解
- 2025马年元旦新春晚会活动策划
- 交警新警执法培训
- 骨科护理标准操作流程手册
- 产品推广专员培训
- DB65T 3119-2022 建筑消防设施管理规范
- 书黄筌画雀文言文课件
- 文体局非遗传承人评选方案
- 陪诊师医学知识培训总结课件
- 2024-2025学年江苏省苏州市高二上学期学业质量阳光指标调研数学试卷(解析版)
- 项目验收过程标准化手册
- 土地复垦项目施工组织设计方案书
评论
0/150
提交评论