算法 算法4.2
  void replace(String& S, String T, String V)
 {
  // 以串V替代串S中出现的所有和串T相同的子串
  n=StrLength(S); m=StrLength(T); pos = 1;
  StrAssign(news, NullStr);     // 初始化 news 串为空串
  i=1;
  while ( pos <= n-m+1 && i )
  {
   i=Index(S, T, pos);       // 从pos指示位置起查找串T
   if (i!=0) {
    SubString(sub, S, pos, i-pos); // 不置换子串
    Concat(news, news, sub);    // 联接S串中不被置换部分
    Concat(news,news, V);     // 联接V串
    pos = i+m;           // pos 移至继续查询的起始位置
   } // if
  } // while
  SubString(sub, S, pos, n-pos+1);  // 剩余串
  Concat( S, news, sub );      // 联接剩余子串并将新的串赋给S
 }
 
  实现"置换"操作的基本思想为:由S和V生成一个新的串 news。首先将它初始化为一个空串,然后重复下列两步直至"查找不成功"为止:
 1) 自 pos 位置起在串S中查找和T相同的子串;
 2) 将S中不被置换的子串(即从 pos 起到和T相同子串在S中的位置之前的字符序列)和V相继联接到news 串上。

  最后尚需将S中不被置换的字符序列联接到 news 串中,并将所得的新串赋给串 S。动画

  这里要注意的是,语句 Concat(news,news,V)
的前提是不破坏V串。即在利用高级语言实现此算法时应注意看请语言使用手册中的说明。