




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串的基本操作#include#include#include#define m 100typedef structchar chm;int length;Hstr;void main()Hstr *l,*p,*r;char c,w;int h,j,k;int i=0;l=(Hstr *)malloc(sizeof(Hstr);p=(Hstr *)malloc(sizeof(Hstr);r=(Hstr *)malloc(sizeof(Hstr);l-length=0; p-length=0;r-length=0;printf(请选择相关操作(数字15控制,输入0结束)n);printf(-1.建立串-n);printf(-2.显示串长度-n);printf(-3.生成与原来相同的串-n);printf(-4.串比较-n);printf(-5.串连接-n);printf(-6.返回值-n);scanf(%c,&w);getchar();while(w)switch(w)case 1:printf(请输入字符(#结束):n);scanf(%c,&c);while(c!=#) l-length+;l-chi=c;i+;scanf(%c,&c);printf(串中字符为n);for(i=0;ilength;i+)printf(%c,l-chi); printf(n);break;case 2: printf(串长度为%dn,l-length);break;case 3: for(i=0;ilength;i+) p-chi=l-chi; p-length=l-length; printf(复制的串中字符为n);for(i=0;ilength;i+)printf(%c,p-chi); printf(n); break;case 4:i=0;printf(请输入要与原串比较的字符串(#结束):n);scanf(%c,&c);while(c!=#) r-length+;r-chi=c;i+;scanf(%c,&c);printf(第二个串中字符为n);for(i=0;ilength;i+)printf(%c,r-chi); printf(n); for(i=0;ilength&ilength;i+)if(l-chi!=r-chi)if(l-chi-r-chi)chi-r-chi)0)printf(第一个串大); printf(n);break;if(i=r-length|i=l-length)printf(两个串一样大n); break;case5:i=0;printf(请输入要与原串连接的串(#结束)n); scanf(%c,&c);while(c!=#)r-length+;r-chi=c;i+;scanf(%c,&c);printf(第二个串中字符为n);for(i=0;ilength;i+)printf(%c,r-chi); printf(n);for(i=0,j=0;ilength;i+,j+)l-chl-length+i=r-chj;l-length=l-length+r-length;printf(连接后第一个串中字符为n);for(i=0;ilength;i+)printf(%c,l-chi); printf(n);break;case 6:i=0;printf(请输入要找串的起始位置(第几个字符?)n); scanf(%d,&h); printf(请输入要找的字符个数n); scanf(%d,&k); printf(内容为:n); for(i=0;ichh-1); h+; printf(n); break;getchar();printf(请选择相关操作(数字16控制,输入0结束)n);printf(-1.建立串-n);printf(-2.显示串长度-n);printf(-3.生成与原来相同的串-n);printf(-4.串比较-n);printf(-5.串连接-n);printf(-6.返回值-n); scanf(%c,&w);getchar();模式匹配#include#include#include#define bool int#define true 1#define false 0typedef structchar *ch;int length;HString;bool assign(HString *t,char *chs)int i=0;char *c=chs,*d=chs;while(ci)/c不为空时进入循环i+;/计算字符串常量chs的长度if(!i)t-ch=NULL;t-length=0;elset-ch=(char*)malloc(i*sizeof(char);c=t-ch;if(!t-ch)/如果没有申请到空间return -1;while(*chs)/chs不为空时进入循环*c+=*chs+;t-length=i;return true;bool insert(HString *s,int pos,HString *t)if(poss-length)return false;if(t-length)/t非空int i=0;if(!(s-ch=(char*)realloc(s-ch,(s-length+t-length)*sizeof(char)exit(-1);for(i=s-length-1;i=pos;i-)s-chi+t-length=s-chi;for(i=0;ilength;i+)s-chpos+i=t-chi;s-length+=t-length;return true;int strLength(HString *s)return s-length;int strCompare(HString *s,HString *t)int i;for(i=0;ilength&ilength;i+)if(s-chi!=t-chi)return s-chi - t-chi;return s-length - t-length;bool subString(HString *sub,HString *s,int pos,int len)if(pos=s-length|len s-length)return false;if(sub-ch)free(sub-ch);if(!len)sub-ch=NULL;sub-length=0;elseint i=0;sub-ch=(char*)malloc(len*sizeof(char);for(;ichi=s-chpos+i;sub-length=len;return true;void printStr(HString *t)int i=0;while(i+length)putchar(t-chi-1);/printf(第%d个:%cn,i-1,t-chi-1);putchar(n);int indexBF(HString *s,HString *t,int pos)int i=pos,j=0;if(pos0) return -1;while(i length & j length)if(s-chi=t-chj)i+;j+;elsei=i-j+1;j=0;if(j=t-length)return i-t-length;return -1;int findNext(HString *p,int *next)int i=0,j=-1;next0=-1;while(ilength)while(j=-1|i length & p-chi=p-chj)i+;j+;if(p-chi!=p-chj)nexti=j;elsenexti=nextj;j=nextj;return -1;void findNextString(char *p,int *next)int len=strlen(p);int i=0,j=-1;next0=-1;while(ilength;char *c=p-ch;int i=0,j=-1;next0=-1;while(ilength)if(j=-1|ci=cj)i+,j+;if(ci!=cj)nexti=j;elsenexti=nextj;elsej=nextj;int kmpString(char *t,char *p,int pos)int i=pos,j=0,plen=strlen(p),tlen=strlen(t);int *next=(int*)malloc(plen*sizeof(int);findNextString(p,next);while(itlen & jlength*sizeof(int);int i=pos,j=0;findNext2(p,next);while(ilength&jlength)if(j=-1|p-chj=t-chi)i+,j+;elsej=nextj;if(j=p-length)return i-j;return -1;int kmp(HString *t,HString *p,int pos)int *next=(int*)malloc(p-length*sizeof(int);int i=pos,j=0;findNext(p,next);while(ilength-p-length)while(j=-1|jlength & p-chj=t-chi)i+;j+;if(j=p-length)return i-p-length;j=next
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 斜屋面梁板高支模专项施工方案
- 小学天宫课堂活动方案策划
- 2025年注册设备监理师考试 设备监理实务考点精讲冲刺试卷
- 云计算技术在各行业中的应用前景分析
- 网红推广营销方案策略
- 夜间施工专项安全保障方案
- 期货从业资格之期货投资分析考试押题卷附参考答案详解【黄金题型】
- 2025年安徽蚌埠市事业单位招聘154人(市区)笔试备考题库及参考答案详解一套
- 2025年度民政部所属单位公开招聘应届毕业生笔试高频难、易错点备考题库及参考答案详解一套
- 2023年度收银审核员考前冲刺练习试题附答案详解(夺分金卷)
- 三角函数性质与解三角形(解答题10种考法)
- DB3702T 31-2023 未成年人家庭监护能力评估工作规范
- 大学生反诈宣传课件
- 体育行业体育产业园区建设方案
- 幼儿园课程教研活动
- 幼儿烫伤课件教学课件
- 人美版(2024)小学美术一年级上册教学设计(附教材目录)
- 国家职业技术技能标准 6-29-01-01 砌筑工 人社厅发20235号
- 2024-2025学年初中数学八年级上册沪科版(2024)教学设计合集
- 中小学危险化学药品分类
- (完整版)新概念英语第一册单词表(打印版)
评论
0/150
提交评论