4_1实验报告.docVIP

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

数据结构实验报告 实验名称 实验4—1 串 指导教师 王日凤 成 绩 系(院) 计算机工程系 专业班级 计Y103班 姓 名 李英洋 学 号 201000403116 一﹑ 实验目的 ⒈通过对串的特点的分析,掌握串的主要存储结构。 ⒉在串的具体存储结构基础上,实现串的基本操作。 二﹑ 实验内容 1.串的定义及实现 #define MAX_STR_LEN 40 typedef char SString[MAX_STR_LEN+1];//字符串的存储结构定义,0号单元存放串的长度 2.串的基本操作 ⑴串的初始化操作: 分析:生成串操作就是生成一个新的串,其值为给定的字符串的值。 相应代码: int StrAssign(SString T,char *chars) { //生成串:生成一个其值等于chars的串T int i,n; n=strlen(chars); if(n=MAX_STR_LEN) return 0; else { T[0]=n; for(i=1;i=T[0];i++) T[i]=chars[i-1]; return 1; } } ⑵串比较操作: 分析:串比较操作就是依次比较两个字符串相应字符。若两个字符串的长度相同,而且各个对应位置的字符都相同,则这两个字符串相同,返回0;若在对应位置一个字符串S中的字符小于零,一个字符串T中字符(结束符任何字符),则该字符串小于另一个字符串,返回小于0的值;除此外,字符串S大于字符串T,返回大于0的值。 相应代码: int StrCompare(SString S,SString T) { //串的比较:若ST,则返回0;若S=T,则返回=0;若ST,则返回0 int i,m,n; m=S[0]; n=T[0]; for(i=1;i=mi=n;++i) { if(S[i]!=T[i]) return m-n; else return 0; } } ⑶求字符串的长度操作: 分析:求字符串的长度操作就是计算字符串中字符的个数,实际上就是字符串0位置中的值。 相应代码: int StrLength(SString S) { //求串长:返回串S的元素个数 return S[0]; } ⑷串的连接操作: 分析:将一个字符串接到另一个字符串的尾部。若字符串S1与S2连接组成新串T,连接时有3种情况。 相应代码: int StrConcat(SString T,SString S1,SString S2) { //串连接操作:用T返回S1和S2连接成的新串。若未截断则返回1,否则返回0 int i; if(S1[0]+S2[0]=MAX_STR_LEN) { for(i=1;i=S1[0];i++) T[i]=S1[i]; for(i=1;i=S2[0];i++) T[i+S1[0]]=S2[i]; T[0]=S1[0]+S2[0]; return 1; } else { for(i=1;i=S1[0];i++) T[i]=S1[i]; for(i=1;i=MAX_STR_LEN;i++) T[i+S1[0]]=S2[i]; T[0]=S1[0]+S2[0]; return 0; } } ⑸取子串操作: 分析:取子串操作就是将一个字符串中S从起始位置pos开始长度len的字符串取出存入另一个字符串Sub中,并返回。 相应代码: int Substring(SString Sub,SString S,int pos,int len) { //求子串:用Sub返回串S的第pos个字符起长度为len的子串 int i; if(pos1||posS[0]||len0||lenS[0]-pos+1) return 0; for(i=1;i=len;i++) Sub[i]=S[pos+i-1]; Sub[0]=len; return 1; } ⑹子串定位: 分析:子串定位操作就是在主串S中取出从第I(i的初始值为给定的pos)个字符开始,长度和子串T比较,若相等,则T在S中的定位值为i,否则,i增加1,直至S中部存在和T相同的子串或不存在该子串为止。 相应代码: int Index(SString S,SString T,int pos) { //子串的定位:返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0 int i,j; if(1=pospos=S[0]) { i=pos; j=1; while(i=S[0]j=T[0]) if(S[i]==T[j])

文档评论(0)

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

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

1亿VIP精品文档

相关文档