Записывать в файл все слова, начинающиеся с заданной буквы - 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, файлы закрываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д