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
*)