版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西北师范大学计算机科学与工程学院学生实验报告学号201371020217专业计算机 科学与 技术班级软件一班姓名王尚课程名称数据吿结构课程类型专业课实验名称串的基本操作实验目的:(1)掌握串的基本操作,即生成一个字符串、联接成一个新串、串 的清除等一系列操作。(2)掌握串的基本意义,学会基本的编程。实验要求及内容:实验要求:通过学习串这一小节,掌握其基本的操作要求,能实生成一个字符串、联接成一个新串、串的清除等一系列操作。1. ADTADT LIST数据对象:数据关系:StrCopy(&t,s)初始条件:chars是字符串常量。操作结果:生成一个其值等于 chars的串T。StrCop
2、y (&T,S)初始条件:串S存在。操作结果:若S为空串,则返回TURE否则返回FAKSEStrCompare(s)初始条件:串s和T存在。操作结果:若s>t,则返回值>0;若返回值s=t,则返回值=0;若s<t,则返回值<0;clearStri ng(&s)初始条件:串s存在。操作结果:将s清空串。2. 基本操作的实现代码如下:#i nclude "stdio.h"#include "string.h"#i nclude "stdlib.h"#defi ne OK 1#defi ne ERRO
3、R 0#defi ne TRUE 1#defi ne FALSE 0#define MAXSIZE 40 /*存储空间初始分配量*/typedef int Status;/* Status是函数的类型,其值是函数结果状态代码,如OK等*/typedef char StringMAXSIZE+1; /* 0号单元存放串的长度 */*输出字符串T */void StrPri nt(Stri ng T)int i;for(i=1;i<=T0;i+)prin tf("%c",Ti);prin tf("n");/*生成一个其值等于chars的串T */Sta
4、tus StrAssig n( Stri ng T,char *chars)int i;if(strle n(chars)>MAXSIZE)return ERROR;elseT0=strle n(chars);for(i=1;i<=T0;i+)Ti=*(chars+i-1);return OK;/*返回串的元素个数*/int StrLe ngth(Stri ng S)return S0;/*初始条件:串S和T存在*/*操作结果:若S>T,则返回值>0;若S=T,则返回值=0;若S < T,则返回值< 0 */int StrCompare(String S,S
5、tring T)int i;for(i=1;i<=S0&&i<=T0;+i)if(Si!=Ti)return Si-Ti;return S0-T0;/*用T返回S1和S2联接而成的新串。若未截断,则返回 TRUE否则FALSE*/Status Con cat(Stri ng T,Stri ng S1,Stri ng S2)int i;if(S10+S20v=MAXSIZE) /* 未截断*/for(i=1;i<=S10;i+)Ti=S1i;for(i=1;i<=S20;i+)TS10+i=S2i;T0=S10+S20;return TRUE;else /
6、* 截断 S2 */for(i=1;i<=S10;i+)Ti=S1i;for(i=1;i<=MAXSIZE-S10;i+)TS10+i=S2i;T0=MAXSIZE;return FALSE;/*用Sub返回串S的第pos个字符起长度为len的子串。*/Status SubStri ng(Stri ng Sub,Stri ng S,i nt pos,i nt le n)int i;if(pos < 1|pos>S0|len < 0|len>S0-pos+1)return ERROR;for(i=1;i<=le n;i+)Subi=Spos+i-1;Su
7、bO=le n; return OK;int main()int i, j, opp;char s;Stri ng t,s1,s2,sub;Status k;printf("n1.生成串n2.求串长n3.串比较");printf("n4.串连接n5.求子串");printf("n0.退出n请选择你的操作:n");while(opp != '0')sca nf("%d",&opp);switch(opp)case 1:k=StrAssig n( s1,"wa ngsha ng&quo
8、t;);if(!k)printf("串长超过 MAXSIZE(=%d)n",MAXSIZE);exit(0);printf("串 s1 为:");StrPri nt(s1);prin tf("n");break;case 2:printf("串 si 长为%d n",StrLength(s1);break;case 3:k=StrAssig n(s2,"good");if(!k)printf("串长超过 MAXSIZE(%d)n",MAXSIZE);exit(0);print
9、f("串 s2 为:");StrPri nt(s2);prin tf("n");i=StrCompare(s1,s2);if(i < 0)s='<'else if(i=0)s='='elses='>'printf("串 s1%c串 s2n",s);break;case 4:Co ncat(t,s1,s2);StrPri nt(t); break;case 5:printf("求串s1的子串,请输入子串的起始位置:");scan f("%d&
10、quot;, & i);printf("请输入子串的长度:");scan f("%d", &j);printf("起始位置:d子串长度:%dn", i, j);k=SubStri ng(sub,s1,i,j);if(k)printf("子串 sub 为:");StrPri nt(sub);break;case 0:exit(0);运行结果:M *C: VDacuMent s and Setl ingXAdJuinist raTorXDebugXrwr, exe*51你连击择a茨退选作操 旳 串你 戍电还£择 生H.呂昌求-退选 -«*_«*feJP 12 3 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 糖尿病患者饮食护理指导
- Unit4 Growing up 单元话题(成长与经历)写作满分必背范文15篇(解析版)-2025-2026学年九年级英语上册(牛津译林版)
- 护理管理课件感想
- 新疆维吾尔自治区兵团地区十校联考2025年高一上化学期中达标检测试题含解析
- 上海市2025年高一化学第一学期期中联考试题含解析
- 挫伤胸部个案护理
- 云南省迪庆州维西县第二中学2026届高一物理第一学期期末综合测试模拟试题含解析
- 云南省昭通市盐津县一中2025年高一物理第一学期期末达标检测试题含解析
- 西安音乐学院《服装作品集优化》2024-2025学年第一学期期末试卷
- 医院跌倒护理质量改进方案设计
- 给水厂课程设计
- 财政投资评审咨询服务预算和结算评审项目投标方案(技术标)
- HGT 4684-2014 液氯泄漏的处理处置方法
- 中国移动《下一代全光骨干传送网白皮书》
- 前列腺癌手术麻醉管理
- 华为MA5800配置及调试手册
- MOOC 广告创意学-湖南大学 中国大学慕课答案
- 2024年建筑业10项新技术
- 山西国开2024年《农业经营学》形考1-4答案
- 2019年一级注册消防工程师继续教育三科题库+答案
- 【地理】农业区位因素及其变化课件 2023-2024学年高中地理人教版(2019)必修第二册
评论
0/150
提交评论