串基本操作演示实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串基本操作演示实验报告

串的基本操作演示实验报告 学号: 姓名: 班级: 实验环境问题描述: 如果语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及串操作的软件系统时,用户必须自己实现串类型。试实现串类型,并写一个串的基本操作的演示系统。 基本要求: 在教科书4.2.2节用堆分配存储表示实现HString串的最小操作子集的基础上,实现串抽象数据类型的其余基本操作(不使用C语言本身提供的串函数)。参数合法性检查必须严格。 说明:(在格式中,Φ表示0个、1个或多个空格所组成的串。〈串标识〉表示一个内部名或一个串文字。前者是一个串的唯一标识,是一种内部形式的(而不是字符形式的)标识符。后者是两端由单引号括起来的仅可打印字符组成的序列。串内每两个连续的单引号表示一个单引号符。) 利用上述基本操作函数构造以下系统:它是一个命令解释程序,循环往复地处理用户键入的每一条命令,直至终止程序的命令为止。命令定义如下: (1) 赋值。格式:AΦ〈串标识〉Φ〈回车〉 用〈串标识〉所表示的值建立新串,并显示新串的内部名和串值。如:A′Hi!′ (2) 判相等。 格式:EΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉 若两串相等,则显示“EQUAL”,否则显示“UNEQUAL”。 (3) 联接。 格式:CΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉 将两串联接产生结果串,它的内部名和串值都显示出来。 (4) 求长度 格式:LΦ〈串标识〉Φ〈回车〉 显示串的长度。 (5) 求子串 格式:SΦ〈串标识〉Φ+〈数1〉Φ+〈数2〉Φ〈回车〉 如果参数合法,则显示子串的内部名和串值。〈数〉不带正负号。 (6)子串定位。 格式:IΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉 显示第二个串在第一个串中首次出现时的位置。 (7)串替换 格式:RΦ〈串标识1〉Φ〈串标识2〉Φ〈串标识2〉Φ〈回车〉 将第一个串中出现所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。 (0)退出 格式:QΦ〈回车〉 结束程序的运行。 二、实验内容 编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下: 编写栈的基本操作函数 顺序串类型定义如下所示: typedef struct node { char data; struct node *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(1≤i≤StrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新串 (8)串删除 DelStr (s,i,j) 从串s中删去从第i(1≤i≤StrLength(s))个字符开始的长度为j的子串,并返回产生的新串。 (9)串替换 RepStr (s,s1,s2) 在串s中,将所有出现的子串s1均替换成s2。 (10)输出串DispStr(s) 输出串s的所有元素值 判断串是否为空 IsEmpty(s) 输入串inputchuan(char str[100],linkstring *s)输入字符串str并将字符串传递给指针串s 三:程序 :#includestdio.h #includeiostream.h #includestdlib.h typedef struct node { char data; struct node *next; }linkstring; void assign(linkstring *s,char t[])//将字符串t赋值给指针串s,并返回s { int i=0; linkstring *q,*tc; s=(linkstring *)malloc(sizeof(linkstring)); s-next=NULL; tc=s;//tc指向s串的最后一个结点 while(t[i]!=\0)//实现字符数组顺序赋值到串s { q=(linkstring *)malloc(sizeof(linkstring)); q-data=t[i]; tc-next=q;//使得s中与tc同地址的next指向q,使tc与q相连接 tc=q;

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档