串的基本操作

上传人:壹****1 文档编号:476851771 上传时间:2024-02-17 格式:DOCX 页数:17 大小:15.95KB
返回 下载 相关 举报
串的基本操作_第1页
第1页 / 共17页
串的基本操作_第2页
第2页 / 共17页
串的基本操作_第3页
第3页 / 共17页
串的基本操作_第4页
第4页 / 共17页
串的基本操作_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《串的基本操作》由会员分享,可在线阅读,更多相关《串的基本操作(17页珍藏版)》请在金锄头文库上搜索。

1、#incldesto#icldestdlb.#ncludetyefstructr *sr;nt length;HSrng;/堆串/初始化void IntString(HStrig &)S.str=;S.engt =0; /堆串赋值 vid rsign(rin &S,char *char) int i,le; cha *p; p=chas; i(.str) free(S.r); for(0;i!=0;i+) ln=i+; if(!i) Sengt =0; Sstr =0; elseSstr=(chr *)mllc(len*sief(cr);if(!st)xt(-);for(i=0;ln;i+)

2、Ssr=p;S.lengt len; /判断堆串与否为空 nt trEmt(HStrin S) if(Sengt=0) retrn ; lse etn ; /求堆串长度 int StrLngh(HStin S) er S.length ; /串的复制操作 itSrCoy(HStrin&T,HString S) /*将串S复制给串*/ t ; T.str=(chr *)lc(S.lghsie(ca); f(!T.str) ret ; o(=0;iS.lengh;i+) T.stS.tr; T.engh=.lngt; rturn ; /串的比较操作inStrompae(HStringS,HSrng

3、T)/比较串S与串T的大小,如果S的值不小于,返回正值;如果的值不不小于,返回负值;如果相等,返回0*/it i;for(i=;iS.lngth&i.length;i+) f(.str!=T.stri) eun (S.stri-.stri);rn (S.lnhTlngth ); /串的插入操作int StrInset(Htrin &S,intpos,tringT) /*在S中第ps个位置插入T* in i; if(ps0|pos-S.legh) prnt(插入位置错误n); rtur 0; .s=(chr*)ello(S.sr,(S.lng+Tlength)*eof(har));if(!.st

4、)prntf(内存分派失败n);rer 0;for(i=S.lnth-;pos-1;) S.st+.lenth=S.sti;f(i0;iT.egt;i+) S.strpos+i-1Tsr;.lengt=S.ength+T.length;retur 1; /串的删除操作 int Stelt(HStrng &S,int ps,in ln) /*在S中删除o开始的len个字符/ inti; har p; if(pos0|polen-S.lengh) pritf(删除位置错误,参数en不合法n); return 0; p=(cha *)malloc(Sleth-len);if(!)rn(内存分派失败n

5、);retrn0; for(i=0;ipos-1;i+) pi=stri;for(pos-;iS.e-len;i) =.stri+le;S.ng=.lnth-en;fre(S.tr);S.str=p;retur1; /串的连接操作int tCoct(HStrin &,HSting S)/将串连接在后/inti;T.str=(cha )ralloc(Tstr,(Tlength+S.nth)ieof(h) ;i(!T.st)rintf(内存分派失败n);reurn 0; lsfr(i=.lgh;iT.lengh.length;i+) Tstri=S.stri-Teng;.lngh .lngth +

6、Sleh;ern 1; /截取子串操作int ubString(HSing&Su,Strng S,it pos,t e) 将从S中第os个位置截取长度为en的子串赋值给Sub*/ t i;if(ub.t) r(Sub.st); i(po0|lenSlength) pritf(参数en和pos不合法); return0; elseSub.str =(char*)mallo(len*sizo(cr));i(!Su.str)printf(内存分派失败n);return 0;for(=;ie;i+)Sstri=strpos11;Sub.leng=le;rtun1; /串的定位操作 it Stndex(

7、Htring ,intps,Sring T)/*在主串S中的第ps个位置开始查找子串T,如果找到,返回子串在主串中的位置;否则,返回1 it i,j; if(StrEpy() pintf(子串为空); return;=po-1;j=;hile(ienth&j=Tlnt) reuni-j+;lse retr -1; /串的替代操作 int trReplae(HSring,Hin T,HSrin V) /*将串S中的所有子串T用V替代*/ ii=1; nflag; if(StrEmt(T) rintf(子串为空n); reurn0; doi=StrIe(,i,T);if(i)trDelete(S,

8、i,Stength(T));fagrInser(S,i,);(!flag)prit(插入失败);return 0;i+=StrLength(V);whe(i);etrn ; /串的清空操作 tlea(HSring&S) if(S.st ) fre(S.sr); str=0; S.ngth=0; /输出串vodSrrin(HStrinS)nt i;for(=0;iSleng ;+) pinf(%c,S.sri);int sca() t d; prnf(请输入要进行的操作n初始化一种串Sn2.清空串n3.求串长度n4.检查串与否为空n5.输出串n.串的赋值操作n7串的复制操作n8.串的比较操作n9.串的插入操作n0.串的删除操作n11.串的连接操作n12截取子串操作n1串的替代操作n4.串的定位操作n其她键退出.n); an(%d,&); reurn (); mn()int uit =0,pos,en;cha a200;car *s=a; HStrin ,T,V,Sub; while(!qit) swich(scan() cse 1:IitStrin(S);brek; case2:tClear(S);break; a:prt(串的长度为:%dn,StrLengt(S);brak; case

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号