第四章串 4.10 void String reverse( Stringtype s, Stringtype&r求s的逆串r Strassen(r;),∥初始化r为空串 for(sTrlen(s); ri-) StrAssign(c, SubString(s, i, 1)); Strassignt( r Concat(r,c),∥把s的字符从后往前添加到r中 i//String Reverse 4.11 void String Subtract( Stringtype s, Stringtype t, Stringtype&ry求所有包含在串s中 而t中没有的字符构成的新串r StrAssign(r, ); for(Fl; i<=Strlen(s); 1++) StrAssign(c, SubString(s, i, 1)) for(=1ji&& StrCompare(c, Substring(sj,1)计+),∥判断s的当前字符c是否 第一次出现 if(F-n for(k=1k<= Strlen(t&& StrCompare(c, Substring(tk,1)k++),/判断当前字符 是否包含在t中 if(k>Strlen(t) StrAssign(r, Concat(r, c)); }/f 1//String Subtract 4.12 int Replace( Stringtype&S, Stringtype T, Stringtype V),∥将串S中所有子串T替换为 V并返回置换次数 for(n=0=1i<= Strler(S) Strlen(T+1i+)∥注意i的取值范围 if( StrCompare( Substring(s, i Strlen(m)T)∥找到了与T匹配的子串 {/分别把T的前面和后面部分保存为head和tail StrAssign(head, SubString(s, 1, i-D)); StrAssign(tail, SubString(S, i+ Strlen(T), Strlen(S)-i-Strlen(T)+1))第四章 串 4.10 void String_Reverse(Stringtype s,Stringtype &r)//求 s 的逆串 r { StrAssign(r,''); //初始化 r 为空串 for(i=Strlen(s);i;i--) { StrAssign(c,SubString(s,i,1)); StrAssign(r,Concat(r,c)); //把 s 的字符从后往前添加到 r 中 } }//String_Reverse 4.11 void String_Subtract(Stringtype s,Stringtype t,Stringtype &r)//求所有包含在串 s 中 而 t 中没有的字符构成的新串 r { StrAssign(r,''); for(i=1;i<=Strlen(s);i++) { StrAssign(c,SubString(s,i,1)); for(j=1;j<i&&StrCompare(c,SubString(s,j,1));j++); //判断 s 的当前字符 c 是否 第一次出现 if(i==j) { for(k=1;k<=Strlen(t)&&StrCompare(c,SubString(t,k,1));k++); //判断当前字符 是否包含在 t 中 if(k>Strlen(t)) StrAssign(r,Concat(r,c)); } }//for }//String_Subtract 4.12 int Replace(Stringtype &S,Stringtype T,Stringtype V);//将串 S 中所有子串 T 替换为 V,并返回置换次数 { for(n=0,i=1;i<=Strlen(S)-Strlen(T)+1;i++) //注意 i 的取值范围 if(!StrCompare(SubString(S,i,Strlen(T)),T)) //找到了与 T 匹配的子串 { //分别把 T 的前面和后面部分保存为 head 和 tail StrAssign(head,SubString(S,1,i-1)); StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1));