13.串基本操作的演示

13.串基本操作的演示

ID:15777960

大小:69.50 KB

页数:11页

时间:2018-08-05

13.串基本操作的演示_第1页
13.串基本操作的演示_第2页
13.串基本操作的演示_第3页
13.串基本操作的演示_第4页
13.串基本操作的演示_第5页
资源描述:

《13.串基本操作的演示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、13.串基本操作的演示[问题描述]如果语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及串操作的软件系统时,用户必须自己实现串类型。试实现串类型,并写一个串的基本操作的演示系统。[基本要求]本实验习题要求利用该串类型的动态存储分配和串值访问机制(但不是用其串操作过程和函数),实现教科书第4.1.2节中给出的基本操作2~6。除了将第二种基本操作EQUAL(s,t)的函数值改为子界类型-1..1(-1表示False,1表示Ture)以外,要求所实现的各函数中参数的数目、类型和函数的类型与这一节中的定义完全一致。对于上述任何基本操作,函数值0

2、均表示错误返回,它也是串类型中的一个值。参数合法性检查必须严格。利用上述基本操作函数构造一下系统:它是一个命令解释程序,循环往复的处理用户键入的每一条命令,直至终止程序的命令为止。命令定义如下:(1)赋值。格式:A<串标识><回车>用<串标识>所标示的串的值建立新串,并显示新串的内部名和串值。(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><串标识3><回车>将第一个串中所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。(8)显示。格式:P<回车>示所有在系统中被保持的串的内部名和串值的对照显表。(9)删除。格式:D<内部名><回车>删除该内部名对应的串,即赋值的逆操作。(10)退出。格式:Q<回车>结束程序的

4、运行。在上述命令中,如果一个自变量是串,则应首先建立它。基本操作函数的结果(即函数值)如果是一个串,则应在尚未分配的区域内新辟空间存放。[测试数据]要包括以下几组:(1)E““<回车>,应显示”EQUAL”。(2)E‘abc’‘abcd’<回车>,应显示“UNEQUAL”。(3)C““<回车>,应显示“。(4)I‘a’“<回车>应报告:参数非法。(5)R‘aaa’‘aa’‘b’<回车>,应显示‘ba’(6)R‘aaabc’‘a’‘aab’<回车>,应显示‘aabaabaabbc’.(7)R‘aaaaaaaa’‘aaaa’‘ab’<回车>,应显示‘abab’

5、.[问题分析]课题设计假设语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及操作的软件系统。实现时输入一行字符串,调用split函数,分析用户输入的命令,得到命令字符和其后的参数,分解命令字符后的参数,将其保存到para中。根据得到的命令字符,在main函数中分别作相应操作,直到遇到退出命令Q结束。[程序源代码]#includecharsplit(charc[],char**para);intnewstring(char*c);voidlist();voidstrcompare(char*s1,char*s2);voi

6、dcopy(char*s1,char*s2);intstrlen(char*);voidgetlen(char*);voidgetsub(char*,int,int);inttran(char*);voidsub(char*s,intstart,intlen,char*result);intcmp(char*s1,char*s2);intposition(char*s1,char*s2);voidgetpos(char*s1,char*s2);voidreplace(char*s1,char*s2,char*s3);voiddel(intid);char*

7、strings[10000];//保存用户建立的字符串intmain(){inti;char*para[3];//保存split函数处理用户输入后得到的参数charc[1024];//保存用户的输入charcommand;//用户输入的命令字符for(i=0;i<=9999;i++)//读strings进行初始化strings[i]=NULL;para[0]=newchar[255];para[1]=newchar[255];para[2]=newchar[255];gets(c);command=split(c,para);//对命令进行分解while(

8、command!='Q'){switch(command){cas

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。