How to sort the words in a string with Pascal

1 Answer

0 votes
program SortWords;

{$mode objfpc}{$H+}   // Enable modern Object Pascal mode so 'try' works

uses
  Classes, SysUtils;

function SortWordsInString(const S: string): string;
var
  SL: TStringList;
begin
  // Create a TStringList to hold the words
  SL := TStringList.Create;
  try
    // Configure how the string will be split into words
    SL.Delimiter := ' ';          // Words are separated by spaces
    SL.StrictDelimiter := True;   // Ignore special characters like quotes
    SL.DelimitedText := S;        // Split the input string into the list

    // Enable automatic alphabetical sorting
    SL.Sorted := True;

    // Optional: ignore duplicate words
    SL.Duplicates := dupIgnore;

    // Join the sorted words back into a single string
    Result := SL.DelimitedText;

  finally
    // Always free the list, even if an error occurs
    SL.Free;
  end;
end;

begin
  // Test the function
  WriteLn(SortWordsInString('the quick brown fox jumps over the lazy dog'));
end.



(*
run:

brown dog fox jumps lazy over quick the the


*)

 



answered May 21 by avibootz
...