正在加载图片...
void HString Concat(( HString sl, HString s2, HString&将堆结构表示的串s1和s2 连接为新串 if(t ch)free(t ch); tch=malloc((sl length+s2. length) *sizeof(char) for(F=1; <=sl length; i++)tch[i-1]=sl ch[i-1; for(Fl; j<=s2. length: j ++, i++)tch[i-1=s2. chLj-11 t length=sl length+s2. length 3//HString Concat 4.25 int HString Replace( HString&S, HString Thstring v堆结构串上的置换操作,返 回置换次数 for(n=0, i =0; i<=S. length-Tlength; i++) for(=i, k=0 k<T length&&S ch0=.ch[k]: j++, k++) if(k= Length)找到了与T匹配的子串:分三种情况处理 if(T length=V length) for(l=-1}k<= Length,++)/新子串长度与原子串相同时直接替换 S ch[i+l-1=Vch[l-1; else if(( Length< V length)/新子串长度大于原子串时先将后部右移 for(I=S length-1; I>=i+T length s ch[I+V.length-Tlength]=Sch[U]; for(=0; KVlength; I++) S[+V[ else/新子串长度小于原子串时先将后部左移 for(l=i+Vlength; K<S length+V. length-Tlength; 1++) sch[U-S. ch[l-V length+Tlength]; for(I=0; KV.length:; H++) [+!=V; S length+=V. length-T.length; i+=Vlength, n+ i//if i//for return n i//HString Replace 4.26void HString_Concat(HString s1,HString s2,HString &t)//将堆结构表示的串 s1 和 s2 连接为新串 t { if(t.ch) free(t.ch); t.ch=malloc((s1.length+s2.length)*sizeof(char)); for(i=1;i<=s1.length;i++) t.ch[i-1]=s1.ch[i-1]; for(j=1;j<=s2.length;j++,i++) t.ch[i-1]=s2.ch[j-1]; t.length=s1.length+s2.length; }//HString_Concat 4.25 int HString_Replace(HString &S,HString T,HString V)//堆结构串上的置换操作,返 回置换次数 { for(n=0,i=0;i<=S.length-T.length;i++) { for(j=i,k=0;k<T.length&&S.ch[j]==T.ch[k];j++,k++); if(k==T.length) //找到了与 T 匹配的子串:分三种情况处理 { if(T.length==V.length) for(l=1;l<=T.length;l++) //新子串长度与原子串相同时:直接替换 S.ch[i+l-1]=V.ch[l-1]; else if(T.length<V.length) //新子串长度大于原子串时:先将后部右移 { for(l=S.length-1;l>=i+T.length;l--) S.ch[l+V.length-T.length]=S.ch[l]; for(l=0;l<V.length;l++) S[i+l]=V[l]; } else //新子串长度小于原子串时:先将后部左移 { for(l=i+V.length;l<S.length+V.length-T.length;l++) S.ch[l]=S.ch[l-V.length+T.length]; for(l=0;l<V.length;l++) S[i+l]=V[l]; } S.length+=V.length-T.length; i+=V.length;n++; }//if }//for return n; }//HString_Replace 4.26
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有