четверг, 18 июня 2009 г.

вырезать лишние пробелы

В заданном тексте удалить лишние пробелы, оставляя только по одному пробелу между словами.



var
   i: integer;
   f: boolean;
   s: string;
   new_s: string;

begin
   {инициализация переменных}
   s:='More   protests are     expected in     Tehran  after the      main presidential challenger urges     supporters to observe a day of     mourning.';
   new_s:='';
   f:=false; {флаг который говорит о том что пробелы начались}
   
   for i:=1 to length(s) do begin
      if s[i] = ' ' then begin
         if f then begin
            {ничего не делаем}
         end else begin
            f:=true; {начались пробелы}
            new_s:=new_s+s[i]; {один пробел все таки оставим}
         end;
      end else begin
         if f then f:=false; {если был до этого пробел сбросим флаг}
         new_s:=new_s+s[i];
      end;
   end;
   
   writeln(new_s); {и вот результат}

end.

Комментариев нет:

Отправить комментарий