正在加载图片...
StrAssign(S, Concat(head, V); Strassign( S Concat(S,tail),∥把head,v,tail连接为新串 i+= Strlen(V;∥当前指针跳到插入串以后 i//Replace 分析i= Strlen(V)这一句是必需的也是容易忽略的如省掉这一句,则在某些情况 下会引起不希望的后果虽然在大多数情况下没有影响请思考:设S= place, T=ace',v=face’,则省掉计= Strlen(V),运行时会出现什么结果? 4.13 int Delete Substring( Stringtype&s, Stringtype ty/从串s中删除所有与t相同的子串, 并返回删除次数 for(n=, F1; K=Strlen(s)-Strlen(t)+1; i++) if(StrCompare(SubString (s, i, Strlen(t), t)) StrAssign(head, SubString(S, 1, i-1)); StrAssign(tail, SubString (S, i+Strlen(t),Strlen(s)-i-Strlen(t)+1) StrAssign(S, Concat( head tail),∥把 head tail连接为新串 n++ return n i//Delete SubString 4.14 Status nibolan to bolan( Stringtype str, Stringtype&newM∥/把前缀表达式str转换 为后缀式new Initstack(s),/的元素为 Stringtype类型 for(Fl; i<=Strlen(str); i++) sUbsTring (str, i, 1) ifr.字母) push(sr els if(StackEmpty(s))return ERROR pop(s, a); if(Stack Empty(s) return ERROR pop(s, b) StrAssign(t, Concat(r, b); Strassign( c, Concat(t;a);∥把算符r子前缀表达式ab连接为新子前缀表达StrAssign(S,Concat(head,V)); StrAssign(S,Concat(S,tail)); //把 head,V,tail 连接为新串 i+=Strlen(V); //当前指针跳到插入串以后 n++; }//if return n; }//Replace 分析:i+=Strlen(V);这一句是必需的,也是容易忽略的.如省掉这一句,则在某些情况 下,会引起不希望的后果,虽然在大多数情况下没有影响.请思考:设 S='place', T='ace', V='face',则省掉 i+=Strlen(V);运行时会出现什么结果? 4.13 int Delete_SubString(Stringtype &s,Stringtype t)//从串s中删除所有与t相同的子串, 并返回删除次数 { for(n=0,i=1;i<=Strlen(s)-Strlen(t)+1;i++) if(!StrCompare(SubString(s,i,Strlen(t)),t)) { StrAssign(head,SubString(S,1,i-1)); StrAssign(tail,SubString(S,i+Strlen(t),Strlen(s)-i-Strlen(t)+1)); StrAssign(S,Concat(head,tail)); //把 head,tail 连接为新串 n++; }//if return n, }//Delete_SubString 4.14 Status NiBoLan_to_BoLan(Stringtype str,Stringtype &new)//把前缀表达式 str 转换 为后缀式 new { Initstack(s); //s 的元素为 Stringtype 类型 for(i=1;i<=Strlen(str);i++) { r=SubString(str,i,1); if(r 为字母) push(s,r); else { if(StackEmpty(s)) return ERROR; pop(s,a); if(StackEmpty(s)) return ERROR; pop(s,b); StrAssign(t,Concat(r,b)); StrAssign(c,Concat(t,a)); //把算符 r,子前缀表达式 a,b 连接为新子前缀表达
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有