How to move the n word to the end of a string in Pascal

1 Answer

0 votes
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

*)


 



answered Feb 6 by avibootz
edited Feb 7 by avibootz
...