1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.8 Упр.25 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.8 Упр.25 ГДЗ Семакин 10 класс (Информатика)

Задача

стоит в начале строки;
стоит в конце строки;
следует за пробелом.

Подробный ответ

Нужно удалить из строки все лишние пробелы: в начале, в конце и подряд идущие пробелы внутри строки. Удобно сделать это поэтапно:

  • сначала убрать пробелы в начале строки;
  • затем убрать пробелы в конце строки;
  • после этого пройти по строке и оставить только один пробел между словами.

В приведённом решении сначала вводится строка s, затем удаляются начальные и конечные пробелы с помощью delete. После этого строка обрабатывается посимвольно: если текущий символ не является пробелом, он добавляется в новую строку; если символ — пробел, то он добавляется только в том случае, если следующий символ не пробел.

var
  s,s1:string;
  mn:set of char;
  i,l:integer;
begin
  writeln(‘Введите строку:’);
  readln(s);
  mn:=[‘.’,’,’,’;’,’:’,’!’,’?’];
  while s[1]=’ ‘ do delete(s,1,1);
  while s[length(s)]=’ ‘ do delete(s,length(s),1);
  while pos(‘ ‘,s)>0 do delete(s,pos(‘ ‘,s),1);
  s1:=s[1];
  for i:=2 to length(s)-1 do
    if not((s[i]=’ ‘)and(s[i+1] in mn)) then s1:=s1+s[i];
  s1:=s1+s[length(s)];
  s:=s1[1];
  for i:=2 to length(s1)-1 do
    if (s1[i] in mn)and(s1[i+1]<>’ ‘) then s:=s+s1[i]+’ ‘ else s:=s+s1[i];
  s:=s+s1[length(s1)];
  writeln(s);
end.

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

Ответ: программа удаляет пробелы в начале и в конце строки, а также заменяет подряд идущие пробелы одним пробелом.



Общая оценка
4.6 / 5
Другие учебники
Другие предметы