| 
 |  | 
The first example is a function to replace all instances of a String
pattern in an input  String in_Str
with a String rep.
   String
   replace(String in_Str, String pattern, String rep)
   {
      int i = in_String.index(pattern);
      if( i < 0) return in_Str;
      int plen = length(pattern);
      int rlen = length(rep);
      int j;
      do {
         in_Str(i, plen) = rep;
         i += rlen;
         String rest = in_Str(i, length(in_Str)-i);
         i += (j = rest.index(pattern));
      }
      while(j >= 0);
      return in_Str;
   }
The replace routine uses the function
index to find all occurrences of
pattern in  the String in_Str
and replace each occurrence with the String
rep.
Replace can be used to write a simple sed-like program as follows:
   main(int argc,char *argv[])
   {
      String in_Str;
      String rslt;
      while( gets(in_String) ) {
         String rslt = replace(in_Str,argv[1],argv[2]);
         cout << rslt << "\\n";
       }
   }