Символы в скобках заменить на точки - Pascal ABC
Формулировка задачи:
Дана символьная строка. Заменить в ней последовательности символов, расположенные между
открывающими и закрывающими скобками, на точки. Предполагается, что внутри пары скобок
вложенных скобок нет.
Решение задачи: «Символы в скобках заменить на точки»
textual
Листинг программы
var s,s1:string;i:integer; begin write('s: ');readln(s);s1:=''; while (pos('(',s)>0) and (pos(')',s)>0) do begin for i:=pos('(',s)+1 to pos(')',s)-1 do s[i]:='.'; s1:=s1+copy(s,1,pos(')',s)); delete(s,1,pos(')',s)) end; s1:=s1+s; writeln('s'':',s1) end.
Объяснение кода листинга программы
- Переменная s инициализируется как строка, а переменная s1 инициализируется как пустая строка.
- Пользователю предлагается ввести строку.
- В цикле while происходит обработка строки до тех пор, пока в ней есть открывающие и закрывающие скобки.
- Внутри цикла while происходит обработка каждого символа в строке.
- Если текущий символ является открывающей скобкой ('('), а следующий символ является закрывающей скобкой (')'), то происходит следующее:
- Для каждого символа в диапазоне от позиции открывающей скобки + 1 до позиции закрывающей скобки - 1 добавляется точка ('.'),
- Строка s1 увеличивается на копию подстроки s от позиции открывающей скобки до позиции закрывающей скобки,
- Подстрока s удаляется из позиции 1 до позиции закрывающей скобки.
- После завершения цикла while строка s1 добавляется к строке s.
- Результат выводится на экран.