版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、顺序功能图的基本结构 数据结构-顺序串基本操作实验报告 导读:就爱阅读网友为您分享以下“数据结构-顺序串基本操作实验报告”资讯,希望对您有所帮助,感谢您对92to 的支持!数据结构实验报告课程 数据结构 _ 实验名称 顺序串基本操作 院系 电信学院 专业班级 计科10-4 姓名 学 号一、实验目的1)熟悉串的定义和串的基本操作。2)掌握顺序串的基本运算。3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:编写串的基本操作函数顺序串
2、类型定义如下所示:typedef struct char chMAX;int length; SeqString; (1)串赋值 Assign(s,t)将一个字符串常量赋给串s,即生成一个其值等于t的串s(2)串复制 StrCopy(s,t)将串t赋给串s(3)计算串长度 StrLength(s)返回串s中字符个数 (4)判断串相等StrEqual(s,t)若两个串s与t相等则返回1;否则返回0。(5)串连接 Concat(s,t)返回由两个串s和t连接在一起形成的新串。(6)求子串 SubStr(s,i,j)返回串s中从第i(1iStrLength(s)个字符开始的、由连续j个字符组成的子串
3、。 (7)插入InsStr (s,i,t)将串t插入到串s的第i(1iStrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新串(8)串删除 DelStr (s,i,j)从串s中删去从第i(1iStrLength(s)个字符开始的长度为j的子串,并返回产生新串。 (9)串替换 RepStr (s,s1,s2)在串s中,将所有出现的子串s1均替换成s2。(10)输出串DispStr(s)输出串s的所有元素值(11)判断串是否为空 IsEmpty(s)为空返回1,不为空返回0 编写主函数 调用上述函数实现下列操作:(1) 建立串s=“abcdefghijklmn
4、”,串s1=“xyz”,串t“hijk”(2) 复制串t到t1,并输出t1的长度(3) 在串s的第9个字符位置插入串s1而产生串s2,并输出s2(4) 删除s第2个字符开始的5个字符而产生串s3,并输出s3(5) 将串s第2个字符开始的3个字符替换成串s1产生串s4,输出s4(6) 提取串s的第2个字符开始的10个字符而产生串s5,并输出s5(7) 将串s1和串t连接起来而产生串s4,并输出s4(8) 比较串s1和s5是否相等,输出结果(9) 判断s3是否为空 四、源程序代码#include<stdio.h>#define MAX 100 typedef structchar ch
5、MAX;int length; SqString; void StrAssign(SqString &s,char t) /串赋值 int i;for(i=0;ti!=0;i+)s.chi=ti;s.length=i; void StrCopy(SqString &s,SqString t) /串复制 int i;for(i=0;i<t.length;i+)s.chi=t.chi;s.length=t.length; int StrEqual(SqString s,SqString t) /判断串相等 int same=1,i; if(s.length!=t.length)same=0;
6、elsefor(i=0;i<s.length;i+)if(s.chi!=t.chi)same=0;break;return(same); int StrLength(SqString s) /计算串长度 return(s.length); SqString Concat(SqString s,SqString t) /串连接 SqString str;int i;str.length=s.length+t.length;for(i=0;i<s.length;i+)str.chi=s.chi;for(i=0;i<t.length;i+)str.chs.length+i=t.ch
7、i; return str; SqString SubStr(SqString s,int i,int j)/求子串 SqString str;int k;str.length=0;if(i<=0|i>s.length|j<0|i+j-1>s.length) return str;for(k=i-1;k<i+j-1;k+)str.chk-i+1=s.chk;str.length=j;return str; SqString InsStr(SqString s1,int i,SqString s2) int j;SqString str;str.length=0;i
8、f(i<=0|i>s1.length+1)return str;for(j=0;j<i-1;j+)str.chj=s1.chj;for(j=0;j<s2.length;j+)str.chi+j-1=s2.chj;for(j=i-1;j<s1.length;j+)str.chs2.length+j=s1.chj; str.length=s1.length+s2.length; return str; SqString DelStr(SqString s,int i,int j) /删除 int k;SqString str; /插入str.length=0;if(i
9、<=0|i>s.length|i+j>s.length+1) return str; for(k=0;k<i-1;k+)str.chk=s.chk; for(k=i+j-1;k<s.length;k+)str.chk-j=s.chk; str.length=s.length-j;return str; SqString RepStr(SqString s,int i,int j,SqString t) int k;SqString str;str.length=0;if(i<=0|i>s.length|i+j-1>s.length) return
10、 str; for(k=0;k<i-1;k+)str.chk=s.chk; for(k=0;k<t.length;k+)str.chi+k-1=t.chk; for(k=i+j-1;k<s.length;k+)str.cht.length+k-j=s.chk; str.length=s.length-j+t.length;return str; void DispStr(SqString s) /输出串所有元素int i;if(s.length>0)for(i=0;i<s.length;i+)printf(“%c”,s.chi);printf(“n”); /替换
11、int IsEmpty(SqString s) /判断串是否为空 if(s.length>0)return 0; /不为空elsereturn 1; /为空 int main(void)void StrAssign(SqString &s,char t);/串赋值 void StrCopy(SqString &s,SqString t);/串复制 int StrEqual(SqString s,SqString t);/判断串相等 int StrLength(SqString s);/计算串长度SqString Concat(SqString s,SqString t);/串连接 SqS
12、tring SubStr(SqString s,int i,int j);/求子串SqString InsStr(SqString s1,int i,SqString s2);/插入 SqString DelStr(SqString s,int i,int j);/删除SqString RepStr(SqString s,int i,int j,SqString t);/替换 void DispStr(SqString s);/输出串所有元素 int IsEmpty(SqString s);/判断串是否为空 char ch1=“abcdefghijklmn”,ch2=“xyz”,ch3=“hi
13、jk”; SqString s,s1,s2,s3,s4,s5,s6,t,t1,t2;int longth,same,kong;StrAssign(s,ch1); /建立串s=“abcdefghijklmn” StrAssign(s1,ch2); /建立串s1=“xyz”StrAssign(t,ch3); /建立串t”hijk” StrCopy(t1,t); /将串t复制给t1printf(“串t1: “);DispStr(t1);longth=StrLength(t1); /求串t1的长度 printf(“串t1的长度为:%dn”,longth); printf(“串 s: “);DispSt
14、r(s);s2=InsStr(s,9,s1); /将串s1插入串s的第9个位置,得串s2printf(“串s2:”);DispStr(s2); /输出串s2 s3=DelStr(s,2,5); /删除s第2个字符开始的5个字符而产生串s3,并输出s3 printf(“串s3:”);DispStr(s3); /输出串s3 s4=RepStr(s,2,5,s1); /用串s1替换串s中从第2个字符起连续5个字符得到新串s4 printf(“串s4:”);DispStr(s4); /输出串s4 s5=SubStr(s,2,10); /提取串s中第2个字符开始的10个字符而产生串s5 printf(“串s5:”);DispStr(s5); /输出串s5 s6=Concat(s1,t); /连接串s1和t而产生串s6printf(“串s6:”);DispStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年健康管理师之健康管理师三级模考模拟试题(全优)
- 2026年临床助理医师外科学呼吸系统诊断专项试卷
- 2026年煤矿培训考核通关模拟题库及1套完整答案详解
- 2026年农机驾驶证模拟试卷答案及答案
- 2026年期货从业资格《基础知识》试题及答案
- 2026年人工智能训练师(二级)案例实操易错试题
- 2026年全科医学主治医师真题解析含答案
- 2026年10月高等教育自学考试《基础会计学》模拟试卷B含完整答案解析
- 光学基础及其技术 4
- 2026年广东汕头市普通高考第二次模拟考试物理试题(含答案)
- 【答案】《马克思主义民族理论与政策》(广西民族大学)章节期末慕课答案
- 《储能用压缩空气泡沫灭火系统》
- 《DLT 2855-2024变电站无人机巡检系统》专题研究报告深度
- 贵州省公路占道作业安全技术指南(试行)
- 耳鼻喉嗓音训练
- 新版电子税务局培训
- DB5328∕T 15-2021 显齿蛇葡萄扦插苗繁育技术规程
- 医院智慧管理分级评估标准体系(试行)-全文及附表
- 华兴数控WA-32XTA用户手册
- 科技成果转化贡献证明书(7篇)
- GB/T 34722-2025浸渍胶膜纸饰面胶合板和细木工板
评论
0/150
提交评论