program TitleCaseConverter;
function ToTitleCase(s: string): string;
var
i: Integer;
capitalizeNext: Boolean;
begin
s := LowerCase(s); // Convert the entire string to lowercase
capitalizeNext := True;
for i := 1 to Length(s) do
begin
if capitalizeNext and (s[i] in ['a'..'z']) then
begin
s[i] := UpCase(s[i]); // Convert first letter of each word to uppercase
capitalizeNext := False;
end
else if s[i] in [' ', '-', '_'] then // Detect word boundaries
capitalizeNext := True;
end;
ToTitleCase := s;
end;
var
inputString: string;
begin
inputString := 'In the beginning there was nothing, which exploded.';
Writeln('Title Case: ', ToTitleCase(inputString));
end.
(*
run:
Title Case: In The Beginning There Was Nothing, Which Exploded.
*)