Цитата:
Сообщение от MaxCool
1)С клавиатуры вводится строка символов. Заменить на ! символы между 1-ой и 2-ой точкой.
|
Вариант 1. Без использования операций Insert и Delete, но со вспомогательной строкой:
Код:
Var
S,S1:String;
i,k:Byte;
Begin
Repeat
k:=0;
Writeln('Enter the string:');
Readln(S);
for i:=1 to Length(S) do
if S[i]='.' then Inc(k);
if k<2 then Writeln('The string must contain at least two "."');
Until k>=2;
S1:='';
i:=0;
Repeat
Inc(i);
if S[i]<>'.' then S1:=S1+S[i];
Until S[i]='.';
S1:=S1+'.';
Repeat
Inc(i);
if S[i]<>'.' then S1:=S1+'!';
Until S[i]='.';
S1:=S1+'.';
Repeat
Inc(i);
S1:=S1+S[i];
Until i>=Length(S);
Writeln(S1);
Readln
End.
Вариант 2. Через функции Insert и Delete. Вспомогательная строка не требуется.
Код:
Var
S:String;
i,k,k1,k2:Byte;
Begin
Repeat
k:=0;
Writeln('Enter the string:');
Readln(S);
for i:=1 to Length(S) do
if S[i]='.' then Inc(k);
if k<2 then Writeln('The string must contain at least two "."');
Until k>=2;
i:=0;
Repeat
Inc(i);
Until S[i]='.';
k1:=i;
Repeat
Inc(i);
Until S[i]='.';
k2:=i;
Delete(S,k1+1,k2-k1-1);
for i:=k1+1 to k2-1 do Insert('!',S,k1+1);
Writeln(S);
Readln
End.