Работа 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.
В результате программа выводит строку без лишних пробелов.
Ответ: программа удаляет пробелы в начале и в конце строки, а также заменяет подряд идущие пробелы одним пробелом.