数据结构串的基本操作_第1页
数据结构串的基本操作_第2页
数据结构串的基本操作_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论