![]() |
ReverseString
Hallo alle zusammen
bekomme es einfach nicht hin input 78563412 bekomme es nur so hin output 21436587 brauche aber input 78563412 output 12345678 jemand ne idee !! |
AW: ReverseString
Hallo,
da ein String im Prinzip ähnlich einem Zeichen-Array ist lassen sich wunderbar Sortier-Algorithmen darauf anwenden. Sieh mal hier nach: ![]() ![]() |
AW: ReverseString
Habe folgende Funktion mal irgendwo gefunden und in meine Bib mit aufgenommen. Ist recht simple aber effektiv...Aaaaber es gibt noch eine schönere Variante die hab ich jedoch vergessen...wird aber irgendwo im Forum besprochen.
Delphi-Quellcode:
Function String_Reverse(S : String): String;
Var i : Integer; Begin Result := ''; For i := Length(S) DownTo 1 Do Begin Result := Result + Copy(S,i,1) ; End; End; |
AW: ReverseString
Delphi-Quellcode:
Einfach ein bissl Mathematik und die passenden Zeichenoperationen.
function ReverseString2(S: String): String;
var i, i2: Integer; begin Result := S; i2 := Length(S) div 2; for i := 1 to i2 do begin Result[i * 2 - 1] := S[(i2 - i + 1) * 2 - 1]; Result[i * 2] := S[(i2 - i + 1) * 2]; end; end; // oder begin Result := S; i2 := Length(S) div 2; for i := 0 to i2 - 1 do begin Result[i * 2 + 1] := S[(i2 - i) * 2 - 1]; Result[i * 2 + 2] := S[(i2 - i) * 2]; end; end; |
AW: ReverseString
Hallo,
war die Frage nicht genau die, dass er das verhalten von ![]() Zitat:
|
AW: ReverseString
Das ist hier die Frage ... Möchte er eine Sortierung oder sind die Zahlen nur als wertunabhängiges Beispiel zu sehn?
> sortieren > ReversteString + sowas wie LittleEndian/BigEndian |
AW: ReverseString
Delphi-Quellcode:
procedure QSortStr(var AStr: string);
var tmp: Char; procedure QSortAll(const LoIndex, HiIndex: Integer); var Lo, Hi: Integer; Pivot: Integer; begin Lo := LoIndex; Hi := HiIndex; Pivot := StrToInt(AStr[(Lo + Hi) div 2]); repeat while StrToInt(AStr[Lo]) < Pivot do Inc(Lo); while StrToInt(AStr[Hi]) > Pivot do Dec(Hi); if Lo <= Hi then begin if Lo < Hi then if AStr[Lo] <> AStr[Hi] then begin tmp := AStr[Lo]; AStr[Lo] := AStr[Hi]; AStr[Hi] := tmp; end; Inc(Lo); Dec(Hi); end; until Lo > Hi; if LoIndex < Hi then QSortAll(LoIndex, Hi); if Lo < HiIndex then QSortAll(Lo, HiIndex); end; begin if Length(AStr) > 0 then QSortAll(1, Length(AStr)); end; function getQSortedStr(const AStr: string): string; begin Result := AStr; QSortStr(Result); end; |
AW: ReverseString
Zitat:
78 56 34 12 12 34 56 78 Also, was soll es tun? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz