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

Adam Boduch

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'.

FAQ

4 komentarzy

...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.

LoL, a ReverseString() ?! :)

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 ... :/

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'