用工程建立工作區实现串的连接和比较.docVIP

用工程建立工作區实现串的连接和比较.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用工程建立工作區实现串的连接和比较

信息系信管专业实验报告 课程:数据结构 地点:实验室201 时间: 2013年4 月 22 日 学生姓名 陈高峰 班级 1101 学号 成绩 实验项目 用堆串实现字符串的连接比较 指导教师 王老师 实验目的 掌握串的基本操作: (1)理解串的类型定义,掌握串的基本操作。如:比较,连接等 (2)熟练掌握串的顺序存储和堆分配存储表示及其实现。 (3)根据具体问题的需要,设计出合理算法的设计。 实验任务 利用堆串实现两个字符串s1,s2的比较连接操作。 实验环境 硬件:计算机 软件:windows Visual c++,windows xp,win7; 实验原理 利用堆串动态分配存储串值存储空间的特点,可用“字符序列复制”的方法,对字符串进行比较、连接、复制等操作。 实验实例 利用串的堆分配存储表示方法,对输入的字符串s1,s2进行比较,再将比较连接后的结果赋给字符数组t,初始分配的空间大小为12,结果为用四组不同的数据进行测试,并附上截图。 注意:没有超出分配空间:当两个字符串相等时,无需合并; 当两个字符串不同,但长度相等时完全合并(顺序不计); 当两个字符长度不等时,完全合并,并将字符串值(字符串的长度)小的字符串加在大的后面。 超出分配空间: 将第一个字符串截取分配最大长度后的多余部分,再将截取后的字符串赋给字符数组t; (此例用建立工作区工程操作) 实验源程序: 建立头文件header file,内容如下: #include stdio.h #includestring.h #includemath.h #define MAXSTRLEN 8 typedef char Sstring[MAXSTRLEN+1]; int concat(Sstring t, Sstring s1, Sstring s2); void initSstr(Sstring t); 建立c语言文件main,内容如下: #includeheader.h int main() { Sstring t,s1,s2; int flag,status; initSstr(s1); initSstr(s2); flag=strcmp(s1,s2); if(flag0) status=concat(t,s1,s2); else if(flag0) status=concat(t,s2,s1); else { printf(两个字符串相同,无需合并\n); return 0; } if(status==1) printf(完全合并,结果为:\n); else printf(合并有所截取,其结果为:\n); puts(t+1); return 1; } 建立c语言文件concat,内容如下: #includeheader.h int concat(Sstring t,Sstring s1, Sstring s2) {char ch[MAXSTRLEN]; printf(定义的空间长度为:%d\n,strlen(ch)-3); if(s1[0]+s2[0]=MAXSTRLEN) { strcpy(t+1,s1+1); strcpy(t+s1[0]+1,s2+1); t[0]=s1[0]+s2[0]; return 1; } else if(s1[0]MAXSTRLEN) {t[(MAXSTRLEN+1)]=\0; strcpy(t+1,s1+1); strncpy(t+s1[0]+1,s2+1,MAXSTRLEN-s1[0]); t[0]=MAXSTRLEN; return 0; } else {t[(MAXSTRLEN+1)]=\0; int i; for(i=1;i=strlen(ch)-3;i++) {if(istrlen(ch)-3)break; s2[i]=\0; t[i]=s1[i]+s2[i]; t[0]=MAXSTRLEN; } return 0; } } 建立c语言文件initSstr,内容如下: #includeheader.h char ch[MAXSTRLEN]; void initSstr(Sstring str) { printf(请输入一个字符串:); gets(ch); strcpy(str+1,ch); str[0]=strlen(ch); printf(输入的字符串长度为:%d\n,strlen

文档评论(0)

fv45ffsjjI + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档