Programowanie w języku Delphi » FAQ

Jak napisać procedurę, która odwraca litery w łańcuchu tekstowym

Aby odwrócić tekst w łańcuchu tekstowym, należy skorzystać z funkcji ReverseString z modułu StrUtils.

Można również napisać swoją funkcję która opiera się na prostej pętli For:

function Reverse(Value: String): String;
var
  i : Integer;
begin
  for I := Length(Value) downto 1 do
    Result := Result + Value[i];
end;


Teraz po wywołaniu tej procedury z parametrem 'Adam' zwróci wyraz: 'madA'.

4 komentarze

prgtw 2006-04-08 21:26

...poza tym taka operacja jak Result = Result + char zajmuje dużo czasu na przekopiowanie tekstu. Lepiej jest przydzielić dynamicznie pamięć dla Result'a i w pętli for przez Result[i] przydzielać znak gdyż dostęp do znaku w stringu jest szybszy.

Patyk 2006-01-31 17:51

LoL, a ReverseString() ?! :)

migajek 2006-04-09 00:48

a nie powinno byc downto 1? ... bo string[0] zdaje sie ze kiedys mial zapisana dlugosc, ale obecnego (od kiedy domyslnie string != shortstring) przeznaczenia nie znam ... :/

Jojersztajner 2006-04-09 08:43

nie ma obecnego przeznaczenia (sic!)
przy próbie dostępu do Str[0] wyskakuje błąd <code=:noframe>[Error] Element 0 inaccessible - use 'Length' or 'SetLength'</code>