Was hätte der Verfasser hier besser machen können?
CString replaceSubstr (CString ostr, CString qstr, CString rstr){ int tl = 0, tq = 0, posa = 0, pose = 0; CString ostra = "", ostre = ""; tq = qstr.GetLength(); posa = ostr.Find(qstr); while (posa > 0 ){ tl = ostr.GetLength(); posa = ostr.Find(qstr); if (posa > 0 ){ pose = posa + tq; ostra = ostr.Mid(0,posa ); ostre = ostr.Mid(pose,tl); ostr = ostra + rstr + ostre; } } return ostr ; }
- die Funktion vielleicht auch einmal "richtig" testen, es ist nämlich ein Fehler enthalten...
- "sprechende" Variablennamen verwenden
- die erste Zeile hätte er sich schenken können, da beispielsweise tq zuerst mit 0 vorbelegt und gleich darauf die Länge von qstr ermittelt wird.
Die Lösung:
Naja, vielleicht nicht die Lösung, sondern eine Alternative befindet sich hier. Beachte bitte auch das Abbruchkriterium der Whileschleife.
Naja, vielleicht nicht die Lösung, sondern eine Alternative befindet sich hier. Beachte bitte auch das Abbruchkriterium der Whileschleife.