@sasha_zaitsev

Как заменить слова в файле?

Напишите программу, которая заменяет одно слово в текстовом файле на другое. Словом называется последовательность непробельных символов, ограниченная пробелами или границами строки. Слово-образец может начинаться как с заглавной, так и со строчной буквы; замена должна быть соответствующая. Если слово-образец совпадает с частью какого-то слова, замена не выполняется. После слова может стоять знак препинания из следующего набора: «.,:;!?». Исходный текст записан в файле input.txt , обработанный текст нужно вывести в файл output.txt .
Входные данные
Первая строка входного файла input.txt содержит слово-образец, во второй строке записано слово-замена. Эти слова содержат только строчные буквы. В следующих строках записан текст для обработки.
Выходные данные
Программа должна вывести обработанный текст в файл output.txt .
Примеры
входные данные

tail
head
Bobtail has a tail.
выходные данные
Bobtail has a head.

Не могу найти ошибку. Заранее спасибо!
var i: integer; inp,out: text; s,s_o,s_z,s_z2,s_o2: string;
begin
   assign(inp, 'input.txt');
   assign(out, 'output.txt');
   rewrite(out);
   reset(inp);
   readln(inp,s_o);
   readln(inp,s_z);
   s_o2:=s_o;
   insert(' ',s_o,1);
   s_o2[1]:=Upcase(s_o2[1]);
   s_z2:=s_z;
   insert(' ',s_z,1);
   while not eof(inp) do
      begin
      readln(inp,s);
      while pos(s_o,s)<>0 do
         begin
         i:=pos(s_o,s);
         delete(s,i,length(s_o));
         insert(s_z,s,i);   
         end;
      while pos(s_o2,s)<>0 do
         begin
         i:=pos(s_o2,s);
         delete(s,i,length(s_o2));
         insert(s_z2,s,i);
         end;
      writeln(out,s);
      end;
   close(inp);
   close(out);
end.
  • Вопрос задан
  • 1364 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы