Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст

Решение задачи: «Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст»

textual
Листинг программы
  1. #include  <stdio.h>
  2. #include <string.h>
  3. #define N 255
  4.  
  5. int main(void)
  6. {
  7.     FILE *in;
  8.     char buf[N], *name="C:\\in.txt";
  9.     char text[N]="hello!";
  10.     int f=0;
  11.     if((in=fopen(name, "r"))==NULL)return 1;
  12.     while(fgets(buf, N, in)!=NULL)
  13.     {
  14.         if(strstr(buf, text)!=NULL){printf("%s\n", buf); f=1;}
  15.     }
  16.     if(!f)printf("No!\n");
  17.     fclose(in);
  18.     return 0;
  19. }

Объяснение кода листинга программы

  1. Подключаются необходимые библиотеки
  2. Определяется константа N, ограничивающая размер буфера
  3. Создается указатель на файл in, а также на строки buf и text
  4. Открывается файл in для чтения с помощью функции fopen
  5. Устанавливается флаг f равным 0
  6. В цикле while считываются строки из файла до тех пор, пока не достигнут конец файла
  7. Для каждой считанной строки проверяется наличие в ней заданного текста с помощью функции strstr
  8. Если заданный текст найден, то строка выводится на экран и флаг f устанавливается равным 1
  9. После окончания цикла проверяется значение флага f. Если он равен 0, то выводится сообщение No!
  10. Закрывается файл in с помощью функции fclose
  11. Программа возвращает 0, что означает успешное выполнение

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы