В массиве символов заменить определённые группы символов на заданные - Pascal ABC
Формулировка задачи:
Дан массив символов, в котором встречаются структуры <i> и </i>. Заменить каждое вхождение <i> на </i>, а каждое вхождение </i> на <#>.
Замечание: в программе следует учесть, что буква i может быть как строчной, так и прописной.
Желательно расписать какая команда что выполняет.Решение задачи: «В массиве символов заменить определённые группы символов на заданные»
textual
Листинг программы
var s: array [byte] of char; //[byte] = [0..255] i, j, n: integer; begin writeln('Введите строку символов:'); n := -1; //начальное значение индекса массива (на 1 меньше low(s)) while not eoln do //ввод массива в виде строки до <Enter> или до длины 200 символов begin inc(n); //индекс очередногосимвола read(s[n]); //ввод очередного символа if n >= 200 then break end; readln; for i := n downto 0 do //цикл обработки массива (символы просматриваем с конца) if s[i] in ['i', 'I'] //если очередной символ 'i', then begin //то заменяем if (i > 0) and (s[i - 1] = '/') //если перед 'i' стоит '/' then begin //то s[i - 1] := '#'; //заменяем '/' на '#' for j := i to n - 1 do s[j] := s[j + 1]; //сдвигаем часть массива влево, заодно затираем 'i' dec(n) //уменьшаем максимальный индекс массива end else begin //иначе, если перед 'i' не стоит '/' inc(n); //увеличиваем максимальный индекс массива for j := n downto i + 1 do s[j] := s[j - 1]; //сдвигаем часть массива вправо s[i] := '/'; //на освободившееся перед 'i' место записываем '/' end end; writeln('Преобразованная строка:'); for i := 0 to n do write(s[i]); //выводим массив readln //любуемся результатом end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д