program MoveNthWordToEnd;
uses
Classes;
function MoveNthWordToEndOfString(const S: string; N: Integer): string;
var
Words: TStringList;
Moved: string;
begin
Words := TStringList.Create;
{ Configure splitting }
Words.Delimiter := ' ';
Words.StrictDelimiter := True;
Words.DelimitedText := S;
if (N < 0) or (N >= Words.Count) then
begin
MoveNthWordToEndOfString := S;
Words.Free;
Exit;
end;
Moved := Words[N];
Words.Delete(N);
Words.Add(Moved);
MoveNthWordToEndOfString := Words.DelimitedText;
Words.Free;
end;
var
S, ResultStr: string;
N: Integer;
begin
S := 'Would you like to know more? (Explore and learn)';
N := 2;
ResultStr := MoveNthWordToEndOfString(S, N);
WriteLn(ResultStr);
end.
(*
run:
Would you to know more? (Explore and learn) like
*)