Преобразовать исходную строку, заменив каждую из групп стоящих рядом двух или более точек многоточием (т.е. тремя точками).
Преобразовать исходную строку, заменив каждую из групп стоящих рядом двух или более точек многоточием (т.е. тремя точками).
Ответ(ы) на вопрос:
uses crt;
var s:string;
i,j:byte;
begin
clrscr;
writeln('Введите строку, содержащую точки, как по 1, так и группами:');
readln(s);
if (length(s)>1)and(copy(s,1,2)='..') then{если в начале строки более 1 точки}
begin
{или строка вообще из точек}
while (s[1]='.')and(length(s)>0) do delete(s,1,1);
insert('...',s,1);
end; if(length(s)>2)and(s<>'...') then{если осталось более 2 сиволов, начнем проверять с конца}
begin i:=length(s)-2;
while i>=1 do
if (s[i]<>'.')and(copy(s,i+1,2)='..') then
begin
while (s[i+1]='.')and(i+1<=length(s)) do delete(s,i+1,1);
insert('...',s,i+1);
i:=i-1;
end
else i:=i-1;
end;
write(s);
readln
end.
Не нашли ответ?
Похожие вопросы