ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:34.36KB ,
资源ID:17195491      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17195491.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串基本操作的演示附带源代码Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串基本操作的演示附带源代码Word文档格式.docx

1、UNEQUAL。(3)联接。C将两串拼接产生结果串,它的内部名和串值都显示出来。(4)求长度。L串标识显示串的长度。(5)求子串。S+数2如果参数合法,则显示子串的内部名和串值。数不带正负号。(6)子串定位。I显示第二个串在第一个串中首次出现时的起始位置。(7)串替换。R串标识3将第一个串中所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。(8)显示。P显示所有在系统中被保持的串的内部名和串值的对照表。(9)删除。D内部名删除该内部名对应的串,即赋值的逆操作。(10)退出。Q结束程序的运行。在上述命令中,如果一个自变量是串,则应首先建立它。基本操作函数的结果(即函数值)如果

2、是一个串,则应在尚未分配的区域内新辟空间存放。【测试数据】自定。但要包括以下几组:(1)E,应显示(2)Eabcabcd(3)C(4)Ia,应报告:参数非法。(5)Raaaaab,应显示ba(6)Raaabcaab,应显示aabaabaabbc。(7)RFaaaaaaaaaaaaab,=0 数据关系:R1=|ai-1,aiD, i=1,2,n 基本操作: compare(hstring s,hstring t) 初始条件:S和T是已存在的Hstring类型。 操作结果:比较其值,显示结果“UNEQUAL”或“EQUAL”。 length(hstring s)S是已存在的Hstring类型。返回

3、该串的长度。 concat(hstring &t,hstring s1,hstring s2)S1和S2是已存在的Hstring类型。由S1和S2联接成新串。 index(hstring s,hstring t,int pos)显示第二个串在第一个串中首次出现的起始位置。 replace(hstring &s,hstring t,hstring v)M、t和v是已存在的Hstring类型。将第一个串中所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。 sub (hstring &sub,hstring s,int pos,int len)如果参数合法,则显示子串的内部名和串

4、值 。 display(HString S)显示串S的内部名和串值 。 copy(hstring &t,hstring s)由串s复制得串tgetin(int n)处理命令串S1,把串值存入串头表中ADT String三、详细设计1、自定义数据类型typedef struct hstring char *ch; int length;hstring;hstring headlist100; /串头数组2、基本操作函数1、赋值void strassign() char c; int i; char a20; while(c=getchar()!=n) if(c= i=0;) ai+=c; hea

5、dlistcurnum.ch=(char*)malloc(i+1)*sizeof(char); headlistcurnum.length=i; for(i=0;i=48&c=57)/还是数字 bi=0; sj=atoi(b); j+; sj+=curnum+; if(s0=curnum|s1=curnum) 参数不合法n else j=strcompare(headlists0,headlists1); if(j=0) printf(EQUALn else printf(UNEQUALn3、求长void length() sj=curnum+;=curnum) printf( return;

6、%dn,headlists0.length);4、连接void concat() 连接后串内部名:,curnum); strconcat(headlistcurnum+,headlists0,headlists1);5、子串定位void index() ,strindex(headlists0,headlists1,1);6、显示void display() int i,j;);curnum;i+) n内部名%d ,i); for(j=0;jheadlisti.length;j+) ,headlisti.chj);7、删除void Delete() =curnum) printf( else

7、clearstring(headlists0);8 求子串void sub() j=substring(headlistcurnum,headlists0,s1,s2); if(j=1) 子串内部名:%d s2;,headlistcurnum.chi); 9、替换void replace() strcopy(headlistcurnum,headlistcurnum-3); strreplace(headlistcurnum-1,headlistcurnum-3,headlistcurnum-2);headlistcurnum-1.length;%C3、主函数void main() *n A:

8、赋值 E:判相等 C:联接 L:求长度 n S:求子串 I:子串定位 R:串替换 P:显示n D:删除 Q:退出n printf(请输入命令:while(c=getchar()!Q switch(c) case E: compare();printf(串数: break;A strassign();break;L length();C concat();n串数:I index();P display();D Delete();S sub();R replace();四、调试分析五、用户手册1.本程序的运行环境为DOS操作系统,执行文件为:数据结构课程设计.exe.2.进入程序后即会显示可以使用

9、的命令和命令用途和对应命令的语法格式的列表,用户可以根据命令列表输入正确的命令。如果输入正确就会显示相应的结果,接着可以输入下一条命令。如果输入错误,会显示相应的错误的原因并提示重新输入命令。3.命令是以回车为结束的标志。4.本程序只能输入字符串,且字符串支持空格符,不过字符串必须用双单引号括住。所以Delete命令需要输入的数字也必须用双单引号括住。但命令Substring并不需要如此,在提示“请输入子串的开始位置:”和“请输入子串的结束中位置:”直接输入数字即可。5.命令Subsring在输出正确结果后会接着输出“此命令不存在!请重新输入!”此提示,此问题一直都没有解决,也是该程序的缺陷,

10、但是结果是正确的。6.若要退出程序,请键入命令:Q。六、测试结果 (1)E 命令输出的结果为:EQUAL (2)E abc abcdUNEQUAL (3) I a 语法格式错误! (4)R aaa aab 命令输出的结果为:ba (5)R aaabca aabaabaabaabbc (6)R aaaaaaaa aaaa ababab (7)A string 新赋值的字符串的内部名为:4,串值为:string七、实验中出现的问题、解决方法和心得体会这个实验是对串的操作的时间,实现串操作的基本函数,在接受命令的输入格式方面,试了很多种方法。开始时尝试过用getchar()函数来接收命令,并根据接受

11、到的指令进行操作。在调试程序的过程中,遇到一些结果不正确或超出范围的情况,又要重新返回相应的函数进行检查和修改补充,才能使程序更加健壮和完整,才能做出一个更加实用的软件八、附录源程序#includestdlib.hmath.hmalloc.hint curnum=0; /系统中现有的串的数目int s3; /命令的串参数的内部名(最多3)char a20;char b5;int strcompare(hstring s,hstring t) /若st,则返回值0;若s=t,则返回值=0;若st,则返回值s.length&t.length;+i) if(s.chi!=t.chi) return

12、s.chi-t.chi; return s.length-t.length;void clearstring(hstring &s) /将s清为空串 if(s.ch) free(s.ch); s.ch=0; s.length=0;void strconcat(hstring &t,hstring s1,hstring s2) /用t返回由s1和s2联接而成的新串 if(t.ch) free(t.ch); if(!(t.ch=(char*)malloc(s1.length+s2.length+1)*sizeof(char) overflownreturn;=s1.length-1; t.chi=s1.chi; t.length=s1.length+s2.length; for(i=s1.length,j=0;=t.length-1;i+,j+) t.chi=s2.chj;,t.chi);int substring(hstring &sub,hstring s,int pos,int len) /用sub返回串s的第pos

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1