Entweder ist das Zeichen Whitespace oder nicht.
Wenn kein Whitespace dann das Zeichen an den Buffer (string) geben
Wenn Whitespace und der Buffer nicht leer ist, den Buffer an das Array und den Buffer wieder leeren.
Delphi-Quellcode:
function ParseSearchStr( const SearchStr : string ) : TArray<string>;
var
LCount : integer;
LBuffer : string;
LChar : Char;
begin
SetLength( Result, Length( SearchStr ) div 2 + 1 );
LCount := 0;
for LChar in SearchStr do
begin
if ( LChar = ' ' ) and ( LBuffer <> '' ) then
begin
Result[LCount] := LBuffer;
Inc( LCount );
LBuffer := '';
end
else
LBuffer := LBuffer + LChar;
end;
if LBuffer <> '' then
begin
Result[LCount] := LBuffer;
Inc( LCount );
end;
SetLength( Result, LCount );
end;
Bevor du mich fragst, warum ich das Ausgabe-Array auf
Length( SearchStr ) div 2 + 1
initialisiere, überlege dir wieviele Teile ein String maximal haben kann, wenn diese durch ein Trennzeichen abgegrenzt werden
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)