Записывать в файл все слова, начинающиеся с заданной буквы - Turbo Pascal
Формулировка задачи:
Написать программу, которая записывает в файл все слова, начинающиеся с задаваемой с клавиатуры буквы из исходного текстового файла. Словом считать набор символов, не содержащий пробелов, знаком препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.
Решение задачи: «Записывать в файл все слова, начинающиеся с заданной буквы»
textual
Листинг программы
{$MODE TP} const separators: Set Of Char = [' ', '.', ',', ';', ':', '!', '?']; var f, g: Text; s, sWord: String; c: Char; begin Assign(f, 'f.txt'); ReSet(f); Assign(g, 'g.txt'); ReWrite(g); Write('Input char: '); ReadLn(c); while (Not EoF(f)) do begin ReadLn(f, s); s := s + ' '; sWord := ''; while (Length(s) > 0) do begin if (s[1] in separators) then begin if (sWord[1] = c) then WriteLn(g, sWord); sWord := ''; end else sWord := sWord + s[1]; Delete(s, 1, 1); end; end; Close(f); Close(g); end.
Объяснение кода листинга программы
- В начале объявляются необходимые переменные: f, g — текстовые файлы, s, sWord — строки, c — символ.
- Затем устанавливаются ссылки на файлы: Assign(f, 'f.txt'); ReSet(f); Assign(g, 'g.txt'); ReWrite(g);
- Выводится запрос на ввод символа.
- В цикле while считывается строка из файла f и добавляется в s, затем в sWord.
- Если второй символ строки является одним из разделителей (',.!?'), то проверяется, начинается ли sWord с заданного символа. Если да, то записывается в файл g, затем sWord очищается.
- Если второй символ не является разделителем, то он добавляется к sWord.
- После завершения цикла while, файлы закрываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д