数据结构串基本操作代码_第1页
数据结构串基本操作代码_第2页
数据结构串基本操作代码_第3页
数据结构串基本操作代码_第4页
数据结构串基本操作代码_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验三串/串的基本操作#i nclude "stdio.h"#i nclude "stdlib.h"#defi ne MAXSTRLEN 255typ edef un sig ned char SStri ngMAXSTRLEN+1;void strlength(SString S)/求字串并放到 S0中 int m;for(m=1;Sm!='0'm+);S0=m-1;void insert(SString S,int n,char a)/是插入的位置 a 是插入的字符 strle ngth(S);int i;for(i=S0;i>

2、=n;i-)Si+1=Si;Sn =a;SS0+2='0'in t com pare(SStri ng S,SStri ng T) strle ngth(S);strle ngth(T); int i;for(i=1;iv=S0&&iv=T0;i+) if(Si>Ti) return 1;if(Si<Ti) return -1;if(Si=Ti) con ti nue; if(S0>T0) return 1;else if(S0<T0) return -1;elsereturn 0;void con cat(SStri ng T1,SSt

3、ri ng S1,SStri ng S2) strle ngth(S1);strle ngth(S2);int i; if(S10+S20v=MAXSTRLEN)/ 未截断for(i=1;i<=S10;i+)T1i=S1i;for(i=1;i<=S20;i+) T1S10+i=S2i;T1S10+S20+1='0' void clear(SStri ng S) strle ngth(S);int i;for(i=1;i<S0;i+)Si='0'S0=0;int SubStri ng(SStri ng & Sub,SStri ng S,i

4、 nt p os,i nt len)int i;strle ngth(S);if(p osv1| pos>S0|le * 0|le n> S0-pos+1)prin tf("Error! positio n or len gth is out of range'n"); return 0;for(i=1;i<=le n;i+)Subi=S pos+i-1; Subi='O'Sub0=le n;return 1;int In dex(SStri ng S,SStri ng T,i nt p os) int i=p os,j=1;str

5、le ngth(S);strle ngth(T);while(i<=S0&&jv=TO)if(Si=Tj)+i;+j;elsei=i-j+2;j=1;if(j>T0)return i-T0; else return 0;void mai n()/测试主程序 /*SStri ng S;printf("请输入字符串S:");sca nf("%s",S+1);prin tf("n");prin tf("输入的字符串为:");prin tf("%s",S+1);prin tf

6、("n");in sert(S,2,'A');printf("插入字符后的字符串为:"); prin tf("%s",S+1);prin tf("n");*/*SStri ng T;T:");printf("请输入字符串 sca nf("%s",T+1);prin tf("n");int flag;flag=co mp are(S,T); prin tf("%d",flag);*/*SStri ng S1,S2,T1;

7、printf("请输入字符串 sca nf("%s",S1+1); printf("请输入字符串 sca nf("%s",S2+1); con cat(T1,S1,S2); printf("连接的新字符串为: prin tf("%s",T1+1);prin tf("n");*/S1:S2:");");");/*SStri ng S;printf("请输入字符串S:");sca nf("%s",S+1);printf(

8、"你输入的字符串为:%sn",S+1); clear(S);prin tf("%sn",S+1);*/ /*SStri ng S,Sub;int p os,le n;printf("请输入字符串S:");sca nf("%s",S+1);printf("请输入子串的位置:"); sca nf("%d",&p os);printf("请输入子串的长度:");sca nf("%d",&len);if(SubStri ng(S

9、ub,S ,p os,le n)printf("n 子串为:%sn",Sub+1); printf("子串的长度:dn",Sub0);*/SStri ng S,T;int p os,r;prin tf("输入主串:");sca nf("%s",S+1);prin tf("输入模式串:");sca nf("%s",T+1);printf("请输入起始位置pos:");sca nf("%d",&p os);if(r=I ndex(S

10、,T, pos)printf("模式串在主串中的位置为:%dn",r);else printf("匹配失败! n");字符串中字符频度#i nclude "Stdio.h"#i nclude "stdlib.h"#defi ne MAXSTRLEN 255typ edef un sig ned char SStri ngMAXSTRLEN+1; typ edef struct charc pchar zifu;int pin gdu; struct charc p *n ext;charc p,*Lin kchar

11、;void Strle ngth(SStri ng S)int i;for(i=1;Si!='O'i+);S0=i-1;void In it(L in kchar &cp)cp=(Lin kchar)malloc(sizeof(charc p);cp-> next=NULL; cp->zifu='0'cp->pin gdu=0;void Pin gdu(SStri ng S,Li nkchar &cp) int i=1;charc p *p;charc p *q;while(Si!='0')p=cp;if(p-&

12、gt;zifu='0')p->zifu=Si;p->pin gdu+;i+;con ti nue;while( p->n ext!=NULL)if(p->zifu=Si)p->pin gdu+;break; p=p->n ext;if(p->n ext=NULL)if(p->zifu=Si)p->pin gdu+; elseq=(Li nkchar)malloc(sizeof(charc p); q->zifu=Si;q->pin gdu=1;q-> next=NULL; p->n ext=q; i+;void mai n()Lin kchar cp;Ini t(cp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论