uses crt;
var s:string;
i,j:byte;
begin
clrscr;
writeln('Введите строку, содержащую последовательности цифр:');
readln(s);
i:=1;
while i<=length(s) do
if s[i]='1' then
while (s[i] in ['0'..'9'])and(i<=length(s)) do
delete(s,i,1)
else inc(i);
write(s);
readln
end.
Следующий вариант
program Project1;
const
(*Множество цифр.*)
D = ['0'..'9'];
var
S1, S2 : String;
i, j, Len, Pos1 : Integer;
begin
repeat
Writeln('Введите строку:');
Readln(S1);
Len := Length(S1);
SetLength(S2, Len);
Pos1 := 0;
j := 0;
for i := 1 to Len do begin
(*Переписываем знаки, отличные от цифр.*)
if not (S1[i] in D) then begin
Inc(j);
S2[j] := S1[i];
Continue;
end;
(*Отслеживаем начало последовательности.*)
if S1[i] = '1' then Pos1 := i;
(*Если цифра вне последовательности - переписываем её.*)
if Pos1 = 0 then begin
Inc(j);
S2[j] := S1[i];
end;
(*Отслеживаем конец последовательности.*)
if (i = Len) or (not (S1[i + 1] in D) ) then begin
Pos1 := 0;
end;
end;
(*Коррективуем размер строки в соответствие с количеством добавленных
в неё символов.*)
SetLength(S2, j);
Writeln('Строка после обработки:');
Writeln(S2);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S1);
until S1 <> '';
end.