Замена последовательности символов в строке

Задача

Найти в строке все заданные последовательности символов и заменить их другой последовательностью.

Решение

 

Описание переменных: 

f – файловая переменная текстового типа;
str – строка из файла;
s_out – заменяемая последовательность символов;
s_in – вставляемая последовательность символов.

Алгоритм решения задачи: 

1. Открываем текстовый файл для чтения.
2. Присваиваем значения переменным s_out и s_in.
3. Выясняем длину s_out.
4. Пока не будет достигнут конец файла
____a. Считываем содержимое файла в переменную str.
____b. Пока счетчик не равен нулю
________i. Присваиваем ему индекс первого символа совпавшей последовательности.
________ii. Удаляем и вставляем последовательности символов.

Программа на языке Паскаль: 

 

var
    s_out, s_in, str: string;
    f     : text;
    i, len : integer;
begin
    assign(f,'c:/text.txt');
    reset(f);
    writeln('What cut? ');
    readln(s_out);
    writeln('What paste? ');
    readln(s_in);
    len := length(s_out);
    while not Eof(f) do begin
        readln(f,str);
        i := 1;
        while i<>0 do begin
            i := pos(s_out,str);
            if i<>0 then begin
                delete(str,i,len);
                insert(s_in,str,i);
            end;
        end;
        writeln(str);
    end;
 
    close(f);
readln
end.

 

Примечания: 

Если заменяемое слово имеет позицию 0, то оно не заменяется.

 

Тема

Файлы

Уровень

Комбинированные задачи

Комментарии

Данное решение не является полностью корректным, так как пропущена часть программы, которая отвечает за "перезапись" содержимого файла. То есть, фактически, предоставленный вариант останавливается на моменте, когда мы заменяем слово в записанной из файла строке. Но мы не переписываем содержимое файла, поэтому никаких фактических изменений не будет.

Добавить комментарий