串的基本操作演示实验报告(共11页).doc
《串的基本操作演示实验报告(共11页).doc》由会员分享,可在线阅读,更多相关《串的基本操作演示实验报告(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上串的基本操作演示实验报告 学号: 姓名: 班级:专心-专注-专业一 实验环境问题描述: 如果语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及串操作的软件系统时,用户必须自己实现串类型。试实现串类型,并写一个串的基本操作的演示系统。 基本要求: 在教科书4.2.2节用堆分配存储表示实现HString串的最小操作子集的基础上,实现串抽象数据类型的其余基本操作(不使用C语言本身提供的串函数)。参数合法性检查必须严格。 说明:(在格式中,表示0个、1个或多个空格所组成的串。串标识表示一个内部名或一个串文字。前者是一个串的唯一标识,是一种内部形式的(而不是
2、字符形式的)标识符。后者是两端由单引号括起来的仅可打印字符组成的序列。串内每两个连续的单引号表示一个单引号符。) 利用上述基本操作函数构造以下系统:它是一个命令解释程序,循环往复地处理用户键入的每一条命令,直至终止程序的命令为止。命令定义如下: (1) 赋值。格式:A串标识回车 用串标识所表示的值建立新串,并显示新串的内部名和串值。如:AHi! (2) 判相等。 格式:E串标识1串标识2回车 若两串相等,则显示“EQUAL”,否则显示“UNEQUAL”。 (3) 联接。 格式:C串标识1串标识2回车 将两串联接产生结果串,它的内部名和串值都显示出来。 (4) 求长度 格式:L串标识回车 显示串
3、的长度。 (5) 求子串 格式:S串标识+数1+数2回车 如果参数合法,则显示子串的内部名和串值。数不带正负号。 (6)子串定位。 格式:I串标识1串标识2回车 显示第二个串在第一个串中首次出现时的位置。 (7)串替换 格式:R串标识1串标识2串标识2回车 将第一个串中出现所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。 (0)退出 格式:Q回车 结束程序的运行。 二、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:编写栈的基本操作函数顺序串类型定义如下所示:typedef struct nodechar data;struct no
4、de *next;linkstring;(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)求子串 index(s,j)返回找到串t在串s中的位置 (7)插入InsStr (s,i,t)将串t插入到串s的第i(1iStrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个
5、字符,并返回产生的新串(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)(12) 输入串inputchuan(char str100,linkstring *&s)输入字符串str并将字符串传递给指针串s三:程序:#include#include#includetypedef struct nodechar data;st
6、ruct node *next;linkstring;void assign(linkstring *&s,char t)/将字符串t赋值给指针串s,并返回sint i=0;linkstring *q,*tc;s=(linkstring *)malloc(sizeof(linkstring);s-next=NULL;tc=s;/tc指向s串的最后一个结点while(ti!=0)/实现字符数组顺序赋值到串sq=(linkstring *)malloc(sizeof(linkstring);q-data=ti;tc-next=q;/使得s中与tc同地址的next指向q,使tc与q相连接tc=q;/
7、tc直接指向qi+;tc-next=NULL;void strcopy(linkstring *&s,linkstring *t)/将t串赋值给s串并返回slinkstring *p=t-next,*q,*tc;s=(linkstring *)malloc(sizeof(linkstring);s-next=NULL;tc=s;/tc指向s串的最后一个结点while(p!=NULL)/实现字符数组顺序赋值到串sq=(linkstring *)malloc(sizeof(linkstring);q-data=p-data;tc-next=q;/使得s中与tc同地址的next指向q,使tc与q相连
8、接tc=q;/tc直接指向qp=p-next;tc-next=NULL;int strlength(linkstring *s)/求s的长度int n=0;linkstring *p;p=s-next;while(p!=NULL)n+;p=p-next;return n;void dispstr(linkstring *s)/输出串slinkstring *p=s-next;while(p!=NULL)coutdata;p=p-next;coutnext;q=t-next;while(p!=NULL&q!=NULL)if(p-data!=q-data)return 0;p=p-next;q=q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 操作 演示 实验 报告 11
限制150内