串的基本操作(共8页).doc
《串的基本操作(共8页).doc》由会员分享,可在线阅读,更多相关《串的基本操作(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 串的基本操作 一、实验目的、意义(1)理解串的堆分配存储结构。(2)理解用它们表示时插入,生成串,联接串与求子串的算法。(3)根据具体问题的需要,能够设计出相关算法。二、实验内容及要求说明1:学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。具体要求:定义串的堆分配存储,完成串的基本操作:插入,生成串,联接串,求子串等。三、 实验所涉及的知识点C语言算法、循环算法、串的堆分配存储结构、插入,生成串,联接串与求子串的算法。四、实
2、验结果及分析(所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出。) 五、总结与体会(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。)调试程序时,出现了许多错误。如:串的堆分配存储结构、串的联接等。另外还有一些语法上的错误。由于对所学知识点概念模糊,试验课上未能完成此次上机作业。后来经过查阅教材,浏览网页等方式,才完成试验。这次试验出现错误最重要的原因就是对课本知识点理解不深刻以及编写代码时的粗心。以后要都去练习、实践,以完善自己的不足。六、程序清单(包含注释)#include #include #include typedef char S
3、tatus;int strlen(char *p) int i=0; while(*p+)i+; return i;typedef structchar *ch;/ 若是非空串,则按串长分配存储区,否则ch为NULL int length; / 串长度 HString;/ 初始化(产生空串)字符串Tvoid InitString(HString *T)(*T).length=0;(*T).ch=NULL;/ 生成一个其值等于串常量chars的串T Status StrAssign(HString *T, char *chars)int i,j;if(*T).ch)free(*T).ch); /
4、 释放T原有空间 i = strlen(chars); / 求chars的长度i if(!i) / chars的长度为0 (*T).ch = NULL;(*T).length = 0;else/ chars的长度不为0 (*T).ch = (char*)malloc(i*sizeof(char); / 分配串空间 if(!(*T).ch) / 分配串空间失败 exit(0);for(j = 0; j i; j+) / 拷贝串 (*T).chj = charsj;(*T).length = i;return 1;/ 由串S复制得串Tint StrCopy(HString *T,HString S
5、)int i; if(*T).ch)free(*T).ch); / 释放T原有空间 (*T).ch=(char*)malloc(S.length*sizeof(char); / 分配串空间 if(!(*T).ch) / 分配串空间失败 exit(0);for(i=0;iT,则返回值0;若S=T,则返回值=0;若ST,则返回值0int StrCompare(HString S,HString T)int i;for(i=0;iS.length & iT.length;+i)if(S.chi != T.chi)return S.chi-T.chi;return S.length-T.length;
6、/ 返回S的元素个数,称为串的长度 int StrLength(HString S)return S.length;/ 将S清为空串 int ClearString(HString *S)if(*S).ch)free(*S).ch);(*S).ch=NULL;(*S).length=0;return 1;/ 用T返回由S1和S2联接而成的新串int Concat(HString *T,HString S1,HString S2)int i;if(*T).ch)free(*T).ch); / 释放旧空间 (*T).length=S1.length+S2.length;(*T).ch=(char
7、*)malloc(*T).length*sizeof(char);/分配新串的长度if(!(*T).ch)exit(0);for(i=0;iS1.length;i+)/将S1接到新串T的后面(*T).chi=S1.chi;for(i=0;iS2.length;i+)/将S2接到新串T的后面(*T).chS1.length+i=S2.chi;return 1;/ 用Sub返回串S的第pos个字符起长度为len的子串。int SubString(HString *Sub, HString S,int pos,int len)int i;if(posS.length|lenS.length-pos+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 操作
限制150内