Wenn du Replace nicht benutzen kann, ist der Sinn der Aufgabe wohl etwas mit einer Schleife zu machen. Dann könnte es so aussehen:
Delphi-Quellcode:
Result:='';
for i:=1 to Length(text) do
begin
if text[i]=alt then
Result:=Result+neu
else
Result:=Result+text[i];
end;
Danke
Wird so nur leider nicht klappen für
function myreplace(text:string;alt:string;neu:string): string;
Wirst du spätestens bei einem Aufruf wie myreplace('Hallo Welt', 'Welt', 'Phillip') merken
Doch klappt schon, denn wie jeder weiss ist das ein illegaler Aufruf der Funktion "myreplace", die ja nur dafür gedacht ist einzelne Zeichen zu ersetzen
.
Eventzell kann man die Funktionsdefinition wie folgt ändern, damit das klarer wird:
function myCharReplace(text:string;alt:char;neu:string): string;
Spaß beiseite:
Da man ja kein Replace benutzen soll, würde ich folgern, dass auch so Dinge wie Pos, Copy usw. die man sonst vielleicht benutzen würde auch nicht gebraucht werden sollen.
Dementsprechend müsste das Problem durch eine Verschachtelung von zwei Schleifen gelöst werden:
Schleife 1 sucht den ersten Buchstaben von alt in text, wenn gefunden vergleicht schleife 2 alle Buchstaben in text ab dieser Stelle mit allen Buchstaben in alt. Stimmt alles überein, haben wir einen Treffer usw.
P.S.: Wieso werden nach einem einzeiligen Delphi-Code-Block (fast) alle Zeilenumbrüche ignoriert?