资源描述
#inclstdio。hincludeh=(r )mloc(iizo(ar); if(!ch) etrn ERROR; fo(=;charsi!0;i+) T-chi=charsi; T-lngt=i; printf(n);rurn OK; learSrng(Strng *T)/清空 (!Tch)return EROR; Tlngth=; retrOK;inttrEmpty(HSting )/判断是否为空 f(!S。ch) return ERR; i(S.enth) return ALSE; ese turnTRU;n rengh(HStrn S)/求串长度i(!S.h)return EOR; printf(字符串的长度=%dn,Slnth);rur O;int OuPut(HSting )串的输出 inti; f(!S.ch)rturn ERROR; fo(=0;i=S。ength1;+) printf(c”,S.chi); prnf(”nn); retr O;it SrCopy(HSting*S,HStrng S1)/串的拷贝 inti; if(!S1。ch)eur EROR; S2ch=(har )malloc(1engt*sieo(char)); if(!S2ch) eturn ERROR; S2ngthS.nth; fo(i=0;i1。lngh1;i+) S2chiS1.i; return K;nt Srompar(HString S,HString)/比较串的大小 int i; if(!1c) tunERRO; i(!2。h) retun RROR; for(i0;i=S1.lengt1&S2lent1;i+) (S1.chi!=hi)reurn S。chiS2ci; reur S1lengt2.length;int oncat(Htng *T,Strg S1,HString 2)/串的连接 int i;if(!S1.c) exit(ERROR);if(!S。h) exit(EROR);Tch=(cr)aloc((Slngth+2。lenth)*size(char);if(!T-ch) et(ERROR); fo(i0;ichi2hiS1。lgt;-lengt1.length+2legth;rtur K;int SSting(HString,Srin,in pos,int ln)/定位输出 it i; if(!Tc) retu RROR; if(pospsTlenth|len|le。lengtpo+1) eun ERROR; if(!len)Su=NUL; Sublengh=0; ee S-=(char *)aoc(en*szof(chr); if(!uc)return ERROR; for(i=0;iT。ength) reurn EROR;while(=T。lenhj=lgt)if(.ch-1=S.hj)i+;;lse i=i-j2;1;if(jS。legth) eur(i-lent);elsereurn ERRO;it Repce(HtrgT,String S2,Strng S1)/子串的替换it i; int j=;if(!ch) return RRR; i(!S2。c|!S2。legth) rnEROR; if(!S1.ch) rn ERROR; =Index(*,S2,1); if(!i) eturn EROR; for(;ji1=S1.cj; retrn O;int StrIt(HStrin T,HString S,nt ps)/插入子串 int i,j; cha ewae; if(!ch) reurnERO; if(!.ch) rturn ERO; newbse=(car *)reallc(T-c,(length+S。ength)*sizf(car); if(!newbase) return RROR; Tch=nwbas; if(poleng+) return EROR; or(=-egh-1;=pos-1;i) Tch+S。ength=T-ci; Tegh=T-engh+S。lenth; for(j=0;j=S.leng1;+,i+) Tci+=。chj; retu OK;int StrDelee(HStrin T,i ps,tln)/串元素的删除 int i,j; i(!Tch) retrnEROR; i(poslegth1;i+,j+) ci=Tchj; Tleng=T-lenghlen; reurn OK;insroyStrin(HSt *T)/串的销毁(!Tch)returRRO;fee(T-ch); eturn O;mai() nt i,a,pos,os1,le,b,k; cha charsSE; StringS,S2,S,T,Sub,S;pntf(”为字符串T赋值:n输入字符串T中的字符:”); gets(chas); Strssn(&T,hars); prinf(输出字符串:n);OtPut(); prif(计算字符串T的长度:n);tLnth(T); f(i0;i=15;i) printf(*); pritf(n”);rint(将字符串复制到字符串S中:n”); tCopy(&,T); ntf(输出字符串S:n”); OuPu(S); prinf(计算字符串的长度:n”); reng(S); for(i=0;2n”);eleif(a)rintf(字符串S1S2n); else i(a=) pintf(字符串1=S2n”); for(0;=1;+) pintf(”); pitf(nn”); prnt(”联接字符串S1和S2:n”); pit(输入字符串S1中的字符:”); et(car); trAsign(S1,ha); prtf(”输入字符串S2中的字符:); et(hars); Strig(&2,chrs); ocat(,S1,S); rit(输出字符串T:n); uPut(T); intf(计算字符串T的长度:”); Strength(T); for(;i=15;+) printf(*); printf(n); nt(”返回子串:n); printf(输入字符串T中的字符:); gets(chars); trs(T,char); prntf(输入ps和len的值(指从第几个字符起,l指子串的长度):”); printf(”=”);sanf(”d,&po);rintf(le=”);scanf(%d,len); Subtrig(Sb,T,ps,ln);pitf(”输出字符串Sub:n); utPt(Su); fo(i=0;i=1;i+) pintf(); rntf(nn);prinf(确定子串S在主串中的位置:n); prinf(输入主串T中的字符:”); getar();gts(ars); trAsign(,hars); ritf(”输入子串S中的字符:); (chrs); Stssign(,ar); b=Index(T,os);pint(”在主串T中在第d个位置之后第一次出现子串,); fo(i0;i=15;i+) ntf(*”); rin(”n);rintf(在主串T中用子串S替换子串S2n); prin(输入主串T中的字符:); gets(hars); StrAssg(&T,ch); it(输入子串1中的字符:); gets(char); trssign(&S1,as); pritf(输入子串S中的字符:); ts(char); StAssn(S2,cas); Replce(,2,S1);pintf(输出字符串T:”); OutPt(T); pntf(计算字符串T的长度:); Stenth(T); f(i0;i=;i+) prnf(*); pritf(nn);printf(”在字符串T中插入子串n”); prif(”输入字符串T中的字符:”); gt(rs); StrAssg(&,chas);rit(输入子串S中的字符:); t(rs); trAsign(&S,chars);nf(”输出插入点pos=); scnf(”,&pos); Strr(&T,S,ps);pin(输出字符串T:); tPut(T); StrLng(T); fr(i0;i=15;i+) pritf(”); pint(n”);rintf(在主串T中删除子串n); printf(”输入字符串T中的字符:”); etchar();ts(chars); Strsgn(&T,chrs); printf(输入pos和len的值:n);rintf(pos=);scaf(d”,pos1);printf(ln=”);scan(d,&len); StDeete(&T,os1,len); pt(输出字符串T:n); OutPu(T); rntf(”计算字符串T的长度:n); SLenh(T); r(i;i=5;i+) pin(); pritf(”nn); pit(”清空字符串n”); ClerSring(&); rinf(”判断字符串是不是空串(k为1表示为空串,k为0表示不为空串):); rEmpt(T);rnt(k=dn,k); (=;i15;i+) pintf(”); prin(nn”); printf(销毁字符串n); Desroytng(T); or(i=0;i=5;i+) prn(”); rntf(nn);retun1;文中如有不足,请您指教!10 / 10
展开阅读全文