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.