- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include stdio.h#include stdlib.h#include string.h//定义顺序串#define MaxSize 30typedef struct{ char data[MaxSize]; int len;}SqString;//串的子串个数(顺序串)int SubNum(SqString s){ int n; n=1+(s.len+1)*s.len/2; return n;}//串的匹配查询(顺序串)int StrIndex(SqString s,SqString t)//s为主串,t为模式串{ int i=0,j=0; while(is.lenjt.len)//是否到末尾 { if(s.data[i]==t.data[j])//主串与模式串逐一匹配 { i++; j++; } else //否则,回溯重新开始下一次匹配 { i=i-j+1; //主串从下一个位置开始 j=0; //模式串从头开始 } } if(j=t.len) //如果匹配成功 return (i-t.len); //返回主串第一个下标 else return -1; //匹配失败,返回-1}//串的连接//将串1和串2合并成新串,原串保留int Concat(SqString str1,SqString str2,SqString str,int maxlen){ int i; if(str1.len + str2.len maxlen)//长度之和不能超过maxlen { printf(两串合并后的长度超过规定长度.\n); return 0; } else { for(i=0;istr1.len;i++) str.data[i]=str1.data[i];//将串1复制给新串 for(i=0;istr2.len;i++) str.data[str1.len+i]=str2.data[i];//将串2复制给新串 str.data[str1.len+i]=\0;//置结束标志 str.len=str1.len+str2.len;//计算长度和 } return 1; }//串的替换//串1从第i字符开始的j个字符用串2替换,生成新串int Replace(SqString str1,int i,int j,SqString str2,SqString str){ int m,n; if(j!=str2.len)//如果替换长度不等于串2,退出 { printf(替换长度与串2不等.\n); return 0; } if(i+j-1=str1.len)//i开始j的长度在串1之内 { for(m=0;mi-1;m++)//拷贝串1中0到i-1之间字符 str.data[m]=str1.data[m]; for(n=0;nstr2.len;n++)//拷贝串2的所有字符 str.data[m++]=str2.data[n]; for(n=i+j-1;nstr1.len;n++)//拷贝串1从i+j-1之后的所以字符 str.data[m++]=str1.data[n]; str.data[m]=\0;//置结束标志 str.len=m;//置新串长度 } else //超过,置长度为0 { str.data[0]=\0;//置结束标志 str.len=0; } return 1;}//串中删除字符chvoid Delch(SqString str,char ch){ int i,j; for(i=0;istr.len;i++)//遍历元素 { while(str.data[i]==ch)//如果为ch,将后面元素前移,直到不等于ch为止 { for(j=i;jstr.len;j++) str.data[j]=str.data[j+1];//将后面元素前移 str.len=str.len-1;//长度减一 } }}//删除串中从第i个字符开始j个字符void Delsub(SqString str,int i,int j){ int k; if(i+j-1str.len) { printf(删除子串长度超过主串长度.\n); } else { for(k=i+j-1;kstr.len;k++)//遍历元素 { str.data[k-j]=str.data[k];//后面元素前移 } str.len=str.len-j; //长度减少 str.data[str.len]=\0; //置末尾结束 }}//串逆序void ReverseSq(
您可能关注的文档
最近下载
- 土地资源调查课件.pptx VIP
- 2025教学主任及教秘专项培训班考核试卷含答案.docx
- QC∕T 948-2013 汽车顶部装载装置.pdf VIP
- 八上名著《红岩》:故事梗概+知识点+考点大集合.doc VIP
- 《劳动经济学讲义》课件.ppt VIP
- ISO各体系认证审核前准备资料清单.doc VIP
- 巧虎目录清单.doc VIP
- 销售管理专业《销售案例研究 ( 实践 ) 》课程调研报告样本.pdf VIP
- 2025年新精通版(三年级起)英语三年级上册课件 Unit 2 Lesson 3 .pptx VIP
- 场效应MOS管AK4435参数-9.1A-30V封装SOP-8.pdf VIP
文档评论(0)