как-то так:
//fpc 3.0.0
program helloworld;
var
str, ps1, zm1, ps2, zm2: string;
errors, i: integer;
begin
// обнуляем ошибки
errors: = 0;
// просим строку
writeln('enter string: ');
readln(str);
ps1: = 'чя'; // ищем в строке
zm1: = 'ча'; // меням на
ps2: = 'щя'; // ищем в строке
zm2: = 'ща'; // меняем на
// перебираем строку посимвольно
for i: =length(str) downto 1 do
// если нашли нужную подстроку, которая в ps1
if copy(str,i,length(ps1))=ps1 then
begin
inc(errors); // увеличиваем счетчик ошибок
insert(zm1,str,i); // вставояем перед найденой подстрокой нашу новую подстроку из zm1
delete(str,i+length(zm1),length(ps1)); // удаляем старую подстроку
end;
// перебираем строку посимвольно
for i: =length(str) downto 1 do
// если нашли нужную подстроку, которая в ps2
if copy(str,i,length(ps2))=ps2 then
begin
inc(errors); // увеличиваем счетчик ошибок
insert(zm2,str,i); // вставояем перед найденой подстрокой нашу новую подстроку из zm2
delete(str,i+length(zm2),length(ps2)); // удаляем старую подстроку
end;
// выводим
writeln('количество ошибок = ', errors);
writeln('исправленная строка: ', str);
end.
результат работы в приложении. более читабельную версию кода можно посмотреть и проверить тут:
Популярные вопросы