Вывести из текста только цитаты - C (СИ)
Формулировка задачи:
Задание: Написать программу, которая считывает текст с файла и выводит в другой файл и на экран только цытаты (тоесть предложения которые обьеденены в скобки " ")
Решение задачи: «Вывести из текста только цитаты»
textual
Листинг программы
#include <stdio.h>
int main()
{
FILE *FI, *FO;
int c,r;
FI=fopen("input.txt","rt");
FO=fopen("output.txt","wt");
r=0;
while((c=fgetc(FI))!=-1) {
switch(r) {
case 0:
if(c=='\"') {
r=1;
fputc(c,FO);
printf("%c", c);
}
break;
case 1:
fputc(c,FO);
printf("%c", c);
if(c=='\"') r=0;
break;
}
}
fclose(FO);
fclose(FI);
return 0;
}
Объяснение кода листинга программы
- В начале кода подключается стандартная библиотека файловых операций
stdio.h. - Далее определена функция
main(), которая является точкой входа в программу. - Внутри функции
main()открывается входной файлinput.txtдля чтения и выходной файлoutput.txtдля записи. - Инициализируется переменная
rсо значением 0, которая будет использоваться в оператореswitchдля определения режима работы. - Затем в цикле
whileсчитывается каждый символ из входного файлаFIс помощью функцииfgetc(). - В операторе
switchпроверяется текущее значение переменнойr. - В случае
r=0осуществляется проверка на символ двойных кавычек '`'. Если символ найден, то переменнойrприсваивается значение 1, символ записывается в выходной файлFOи выводится на экран. - В случае
r=1символ записывается в выходной файлFOи выводится на экран. Затем проверяется, является ли текущий символ символом двойных кавычек. Если символ найден, то переменнойrприсваивается значение 0. - По завершении цикла
whileфайлыFOиFIзакрываются с помощью функцииfclose(). - В конце функции
main()возвращается значение 0, что означает успешное выполнение программы.