- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 河南省青桐鸣2024-2025学年高二上学期11月期中化学试卷.docx VIP
- 住院费用清单模板.doc VIP
- 大学学术英语视听说教程下册(第2版)Miriam_Espeseth习题答案.pdf
- 浙江省嘉兴八校联盟2024-2025学年高一上学期期中联考物理试卷(含答案).pdf VIP
- 颈动脉灌注机制.pptx VIP
- 浙江省嘉兴八校联盟2024-2025学年高一上学期期中考试 化学试题(含答案).pdf VIP
- Unit 4 Friends Lesson3 课件 人教精通版英语三年级上册.ppt
- 锅炉原理课件:第七章 锅炉设备的通风计算.ppt VIP
- 生涯发展展示-(第一版).pptx VIP
- 《选品与采购》课件——4.电商采购.pptx VIP
原创力文档


文档评论(0)