Лабораторная работа 7. Работа с функциями ввода-вывода.
Задание:
Написать программу, выполняющую чтение текстового файла “input. in” и выполняющую его преобразование в соответствии с вашим вариантом задания. Результаты запишите в новый файл (Для удобства проверки правильности работы программы) “output. out”.
Примечания:
Имя файла, который подлежит обработке, должно быть входным параметром программы. Файл должен иметь не менее 5 строк текста. Допускается ограничить максимальную длину строки в тексте 80 символами. Допускается (если в индивидуальном задании не оговорено другое) считать, что слова разделяются пробелами, а знаки препинания рассматривать как буквы. Программу следует разрабатывать, исходя из предположения, что весь текст из файла не может быть размещен в оперативной памяти. Допускается создавать при выполнении программы временные файлы (кроме выходного), которые, однако, не должны сохранятся после окончания программы.Варианты заданий:
1 | В каждой строке файла удалить лишние пробелы между словами. |
2 | В каждой строке вставить после знаков препинания пробел, если их там нет. |
3 | В каждой строке исходного файла поменять местами первое и последнее слово и записать в выходной файл. Например: Input. in: Шла Саша по шоссе. Output. out: Шла Саша шоссе. Подсказка: задание будет легко выполнить, если предварительно написать функцию, выделяющую из заданной строки подстроку определенной длины, начиная с заданной позиции. Например: Int substr(char *src_string, char *output_string, int offset, int length_of_substring); |
4 | В каждой строке файла все слова, длина которых превышает среднюю длину слов в строке, сократить до средней длины. |
5 | Дан текстовый файл, содержащий строки. Пользователь вводит с клавиатуры любую букву латинского алфавита. В выходной файл запишите только те слова, которые начинаются с буквы, введенной пользователем. Пример: Файл input. in - монитор, системный блок, клавиатура - ноутбук мышь зарядное устройство дисплей мат. плата - офис антивирус драйверы - мобильный телефон стилус чехол Введенная буква: М Выходной файл: - монитор - мышь мат. плата - мобильный В целях упрощения задания допускается в качестве разделителя между словами использовать только пробел. |
6 | В выходной файл из входного записать только те строки, в которых первые три буквы совпадают с начальными буквами последнего слова строки. Например: Input. in: rose is so rose (1-е 3 буквы последнего слова – ros) but not a tulip (tul) jakk is not jarek (jar) jajaja jejeje jajaja (jaj) Output. out rose is so rose jajaja jejeje jajaja |
7 | Во всем тексте вставить переход на новую строку там, где есть два или больше пробела подряд. Записать в выходной файл. |
8* | Напишите программу простейшего лексического анализа исходного текста программы на Си: программа должна проверять сбалансированность открывающих и закрывающих скобок – {, (, [. Текст в кавычках и в комментариях можете не проверять. В выходной файл запишите 0 при отсутствии ошибок, при наличии запишите номер строки и позицию в ней, в которой содержится ошибка. Подсказка: Это очень простое задание. Воспользуйтесь конструкцией switch-case и при встрече открывающей скобки увеличивайте счетчик, а при встрече закрывающей – уменьшайте. Соответственно, при отсутствии ошибок в файле счетчик должен быть равен нулю в результате работы. |


