当前位置:
文档之家› 数据结构-串的存储表示及基本操作_-课程设计-实验报告
数据结构-串的存储表示及基本操作_-课程设计-实验报告
7). .求字符串的置换:这个函数中有四个形参,两个字符串 s 和 t,两 个整形形参 i 和 j,在函数内部还要定义五个整形变量 k=0、l、n、m、p。首 先把 i+j 赋值给 l;通过输入输入主字符串和要置换的字符串的长度、主字符 串和要置换的字符串 s 和 t。先要判断 j 和将要被置换的字符串的串长关系, 如果刚好相等,就让 t 从第一个元素开始,s 从第第 i 个元素开始,一一赋值。 如 果 t 的 串 长 比 较 大 , 则 用 一 个 for 循 环 , for''(k=s->curlen;k>=i+j-1;k++)'',s[k]赋值给 s[k-j+t->scurlen],这样 剩余的空间刚好可以用来存放 t 的,同样的,如果 t 的串长比较小,同样用 以 for 循 环 , ''for(k=i+j-1,m=i;s[k]!='\0';k++,m++)'',s[k] 赋 值 给 s[m+t->curlen-1],s 剩余的空间也刚好用来存放 t 的。然后,把 t 中的元素 对应的赋值给 s。最后,在 s 的最后一个元素后赋值一个'\0',这时的 s,就 是 t 置换后的新的字符串。 8).子串的定位:这个函数有两个形参,s 和 t,在函数内部,还要定义两个整形变量 i=0 和 j=0。用 while 语句'' while((i<s->curlen)&&(j<t->curlen))'',满足条件 后进行的操作是检验对应的 s 和 t 的元素是否相等,相等时就 i++,j++,用 i 减去 t 的串长即为 t 作为子串在 s 中的定位位置。不相等时,就用 i 减去 j 加上 1 赋值给 i, j=0,往下扫描时,就从 t 的第一个元素再接着扫描。 9)主函数:在主函数中,因为要最多输入两个字符串,所以要先定义两个字符串 s 和 t。有的主函数需要用到整形的变量,最多是两个,所以也要定义两个整形变量 k 和 m。 函数中,有很多的功能不同的函数,这样就要求验证很多次,所以在这里我们考虑用
指导教师: 年月日
2
目录
第一章 数据结构课程设计的目的、基本要求及其解析...................................................1 1.课程设计的目的:......................................................................................................1 2.课程设计要求:..........................................................................................................1 3.课程设计题目解析:..................................................................................................1
#include<stdio.h> #include<string.h> #define maxsize 32 /*假设串可能的最大长度是 32*/ typedef struct {
char ch[maxsize]; /*串的存储空间*/ int curlen; /*当前串的长度*/ }seqstring; seqstring *s; void strcats() /*串的联接*/ { seqstring str1[32],str2[32]; printf("请输入两串字符串:"); /*输入两串字符串*/ scanf("%s%s",str1,str2); /*接受输入的字符串*/ strcat(str1,str2); /*联接两个字符串*/ puts(str1); /*输出联接后的字符串*/ } void strcmps() /*比较字符串的大小*/ { seqstring str1[32],str2[32]; printf("请输入两串字符串:"); scanf("%s%s",str1,str2); if(strcmp(str1,str2)>0)
第一章 数据结构课程设计的目的、基本要求及其解析
1.课程设计的目的: (1):掌握串的基本存储结构。 (2):掌握串的基本运算及其实现。 2.课程设计要求: (1):将上机程序全部调试通过。 (2):结合程序分析运行结果。 3.课程设计题目解析:
顾名思义,串及其基本操作,就是要在理解串的基本概念和特征的基础上, 了解串的内部表示和处理方法。这样才能有效地实现串的基本操作。串,也还是字符 串,是一种特殊的线性表。特殊之处在于表中的每一个元素都是字符,以及由此而要 求的一些特殊操作。在串及其基本操作中,要求的操作有联接、求串长、求子串、比 较串的大小、串的插入、串的删除、子串的定位和置换。因为所要进行的操作比较零 散也比较多,所以就要用到多个函数把这个整体的课程设计划分成多个模块来进行。 每个函数对应一个功能。在主函数中,用一个菜单,就可以将原来的已分模块的函数 系统地进行检验及操作。在程序设计的过程中,根据课程设计的目的和基本要求,注 意一些容易出错的地方及问题。
年级专业
姓名
成绩
1、课题设计目的: (1):掌握串的基本存储结构; (2):掌握串的基本运算及其实现; 2、课题设计意义:通过此次对于串及其基本操作的课程设计,更深层次 课题设计 的了解串的基本概念、特征,掌握串的基本存储结构、基本运算及其实现。 目的与 根据课程设计的目的和基本要求,注意一些容易发生错误的问题,从而进 设计意义 一步的认真分析问题、总结结论和经验,理解设计的思想和构思。联系到 生活上的实际问题,培养课程设计的能力及思想构思。
2
菜单来实现。用一个 while 循环,循环的条件为永真,这样当做完一个函数的验证时, 系统就会自动让你接着选择。在 while 循环下,输入一个数字。每个数字代表不同的 功能。然后用一个 switch 语句,不同的 case 对应不同的函数,如:case(0)就可 以代表求字符串的串长。 2.程序设计代码:
第四章 总结.........................................................................................................................12 4.1 思考和小结:........................................................................................................12 4.2 参考文献:............................................................................................................13
第二章 程序设计内容 1.程序设计的基本思想:(对于串及其基本操作中,程序被分割为很多的模块。所以 以下的程序设计业分成好几个方面来一一阐述) 1). 字符串的联接:在该函数中,strcat(str1,str2)就是将串 str2 紧接着放在 串 str1 的串值的末尾,组成一个新的串 str1。最后所得的新的 str1 即为所求的原来 的两个字符 str1 和 str1 的联接后的结果。输出即是。 2).比较两个字符串的大小:在该函数中,strcmp(str1,str2)是一个函数,它的 功能是比较两个串 str1 和 str2 的大小,通过 if 语句的判断函数 strcmp(str1,str2) 的函数值大小,其中函数值小于、等于和大于 0 时,分别表示 str1<str2、str1=str2、 str1>str2,其对应的输出结果分别为-1、0、1。 3)求字符串的串长:在该函数中,要先定义一个整形变量 i,strlen(str)表示字符 串 str 的长度,它是一个整形函数。通过函数 strlen(str)来算出字符串的长度, 然后赋值给整形变量 i 输出,从而 i 的值即为所求的字符串的长度。 4). 串的复制:在该函数中,首先分别输入两串字符串 str1 和 str2,通过函数 strcpy (str1,str2)来实现 str2 复制给 str1 的功能,得到复制后的字符串为新的 str1, 输出即为复制后的结果。
第二章 程序设计内容...........................................................................................................1 1.程序设计的基本思想................................................................................................1 2.程序设计代码:............................................................................................................3 3.程序运行结果:........................................................................................................8
第三章 程序设计的优缺点及遇到的问题.........................................................................12 3.1:课程设计的优缺点:..........................................................................................12 3.2 遇到的问题:........................................................................................................12