How to replace multiple consecutive question marks (?) with a single question mark in Pascal

1 Answer

0 votes
program ReplaceMultipleQuestionMarks;

function CompressQuestionMarks(const input: string): string;
var
  i: Integer;
  resultStr: string;
  lastWasQuestionMark: Boolean;
begin
  resultStr := '';
  lastWasQuestionMark := False;

  for i := 1 to Length(input) do
  begin
    if input[i] = '?' then
    begin
      if not lastWasQuestionMark then
      begin
        resultStr := resultStr + '?';
        lastWasQuestionMark := True;
      end;
      // skip consecutive '?'
    end
    else
    begin
      resultStr := resultStr + input[i];
      lastWasQuestionMark := False;
    end;
  end;

  CompressQuestionMarks := resultStr;
end;

var
  inputText: string;
begin
  inputText := 'Hello??? How are you?? What is your Wi-Fi password????';

  WriteLn('Processed: ', CompressQuestionMarks(inputText));
end.




(*
run:
  
Processed: Hello? How are you? What is your Wi-Fi password?
  
*)

 



answered Jul 24, 2025 by avibootz
...