Einzelnen Beitrag anzeigen

Liu

Registriert seit: 6. Nov 2009
2 Beiträge
 
#1

Doppelte Zeichen in einem String finden/löschen

  Alt 6. Nov 2009, 19:22
Guten Abend
Ich habe versucht, eine Funktion zu entwerfen, die jedes Zeichen in einem String mit jedem anderen vergleicht und falls ein Zeichen mehrfach auftaucht, alle bis auf das vorne stehende Zeichen zu löschen. Als Beispiel: Aus REGENSCHIRMSTAENDER müsste REGNSCHIMTAD werden. Allerdings löscht er bei mir alle Zeichen die 3 mal oder öfter vorkommen komplett, so dass RGNSCHIMTAD entsteht.

Delphi-Quellcode:
function DeleteChar(s: string): string;
var i,j,n: integer;
begin
n:=length(s);
j:=n-1; i:=0;
for i:=0 to n do begin
  for j:=0 to n do begin
    if ((s[i] = s[j]) and (i <> j))
      then begin
        delete(s, j, 1);
        dec(n);
      end;
    end;
end;
Sieht jemand den Fehler?


Gruß

Liu
  Mit Zitat antworten Zitat