- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 串 通常将子串在主串中首次出现时的该子串的首字符对应的主串中的序号,定义为子串在主串中的序号(或位置)。例如,设A和B分别为 A=“This is a string” B=“is” 则B是A的子串,A为主串。B在A中出现了两次,其中首次出现所对应的主串位置是3。因此称B在A中的序号(或位置)为3 求子串: Status SubString(SString Sub, SString S, int pos, int len) { // 用Sub返回串S的第pos个字符起长度为len的子串。 //其中,1≤pos≤StrLength(S)且0≤len≤StrLength(S)-//pos+1 。 if ( pos1 || posS[0] || len0 || lenS[0]-pos+1 ) return ERROR; Sub[1..len] = S[pos..pos+len-1]; Sub[0] = len; return OK; }//SubString for ( i=S.length-1;i=pos-1; --1) //为插入T而腾出位置 S.ch[i+T.length] = S.ch[i]; S.ch[pos-1..pos+T.length-2] = T.ch[0..T.length-1]; //插入T S.Length += T.length; } return OK; } // StrInsert //====ADT String的表示与实现==== //----串的堆分配存储表示---- Typedef struct{ char *ch ; //若是非空串,则按串长分配存储区,否则ch为NULL int length; //串长度 }HString; //----基本操作的函数原型说明---- Status StrAssign ( HString T, char *chars ); //生成一个其值等于串常量chars的串T int StrLength ( HString S ); //返回S的元素个数,称为串的长度 int StrCompare (HString S, HString T ) //若ST,则返回值0;若S=T,则返回值=0;若ST,则返回值0 Status ClearString ( HString S ); //将S清为空串,并释放S所占空间。 Status Concat ( HString T, HString S1, HString S2 ); //用T返回由S1和S2联接而成的新串。 HString SubString ( HString S, int pos, int len ); // 1≤pos≤StrLength(S)且 0≤len≤StrLength(S)-pos+1。 //返回串S的第pos个字符起长度为len的子串。 //----基本操作的算法描述---- Status StrAssign ( HString T, char *chars ); //生成一个其值等于串常量chars的串T if ( T.ch ) free ( T.ch ) ; //释放T原有空间 for ( i=0, c=chars; c; ++i, ++c ); //求chars的长度i if ( !i ) { T.ch = NULL; T.length = 0; } else { if (!(T.ch = (char *) malloc(i*sizeof(char)))) exit (OVERFLOW); T.ch[0..i-1]= chars[0..i-1]; T.Length = i; } return OK; }//StrAssign Status ClearString ( HString S ); //将S清为空串。 if ( S.ch ) { free ( S.ch ); S.ch = NULL; } S.Length = 0; return OK; }//ClearString int StrLength ( HString S ) { //返回S的元素个数,称为串的长度 return S.len
您可能关注的文档
- 蜀河电站灯泡贯流式机组要素.ppt
- 微机原理与接口技术(chap4设计)要素.ppt
- 树立目标放飞梦想要素.ppt
- 微积分观念要素.ppt
- 数电1第一章要素.ppt
- 微经第七章要素.ppt
- 微课(一)巧用三种方法破解酶实验难题要素.ppt
- 数电习题4要素.ppt
- 微课20150604价格变动对需求量的影响要素.ppt
- 数据传送类指令要素.ppt
- 自动驾驶汽车商业化推广政策对产业链协同影响分析报告.docx
- 数字货币对2025年货币政策传导的金融创新挑战与应对.docx
- 电商绿色物流物流园区绿色物流绿色物流园区绿色物流政策法规解读报告.docx
- 2025年物流配送中心建设与区域经济发展稳定风险评估报告.docx
- 2025年医疗行业人才流动机制与医疗人才培养质量研究报告.docx
- 2025年虚拟现实教育产品在体育课程中的应用效果评估报告.docx
- 2025年艺术市场数字化交易平台政策法规与标准体系建设报告.docx
- 城市轨道交通智慧运维系统2025年智能监控与数据分析技术研究报告.docx
- 2025年医疗行业人才流动机制改革与人才培养策略研究报告.docx
- 教育科技企业商业模式创新与教育科技企业创新能力评估报告.docx
文档评论(0)