de
Gebot 3: Teste Deinen Code gründlich
CString replaceSubstr(CString orginal, CString suche, CString ersatz) 
{
   int letzterWert =  orginal.Find(suche);
   int suchLaenge = suche.GetLength();
   int orginalLaenge = orginal.GetLength();
   CString teilString, neuerString=orginal.Left(letzterWert)+ersatz;   
   while (letzterWert>-1)
   {
      int start = letzterWert;
      letzterWert =  orginal.Find(suche,start+suchLaenge);
      if (letzterWert>-1)
         teilString = orginal.Mid(start+suchLaenge,
                                  letzterWert-start-suchLaenge)+ersatz;
      else
         teilString = orginal.Mid(start+suchLaenge,
                                  orginalLaenge-start-suchLaenge);
      neuerString += teilString;
   }
   if (neuerString==ersatz) neuerString=orginal; // nicht gefunden
   return neuerString;
}
Die Zeile, in der die Gesamtlänge des Strings ermittelt wird ist eigentlich überflüssig, man hätte direkt orginal.GetLength() verwenden können.
© Michael A. Bosch 1999-2011