How to replace multiple spaces in a string with a single space between words in Pascal

1 Answer

0 votes
program ReplaceMultipleSpaces;

uses
  SysUtils; // for Trim

function RemoveExtraSpaces(const str: string): string;
var
  i: Integer;
  ResultStr: string;
  InSpace: Boolean;
begin
  ResultStr := '';
  InSpace := False;

  for i := 1 to Length(str) do
  begin
    if str[i] <> ' ' then
    begin
      ResultStr := ResultStr + str[i];
      InSpace := False;
    end
    else if not InSpace then
    begin
      ResultStr := ResultStr + ' ';
      InSpace := True;
    end;
  end;

  // Trim leading and trailing spaces
  RemoveExtraSpaces := Trim(ResultStr);
end;

var
  str, OutputStr: string;

begin
  str := '   This   is    a   string   with   multiple    spaces   ';
  OutputStr := RemoveExtraSpaces(str);

  WriteLn('"', OutputStr, '"');
end.



(*
run:

"This is a string with multiple spaces"

*)

 



answered Apr 4, 2025 by avibootz
...