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

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

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

Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5. #include <conio.h>
  6. //Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст
  7. int main( void )
  8. {
  9. setlocale(LC_ALL,"rus");
  10. char ch[256], text[50];
  11. int len=0, maxlen=0;
  12. FILE *fp;
  13. if((fp = fopen("f.txt", "r"))==NULL)
  14. {
  15. printf("Нельзя открыть файл...\n");
  16. exit(1);
  17. }
  18. printf("Введите искомый текст (не более 50 символов): ");
  19. gets(text);
  20. do
  21. {
  22. fgets(ch,255,fp);
  23. if(ch==text) printf("%c",ch);
  24. }
  25. while(!feof(fp));
  26.  
  27. fclose(fp);
  28. system("pause");
  29. return 0;
  30. }

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

textual
Листинг программы
  1.  do
  2.     {
  3.         fgets(ch,255,fp);
  4.         if(strstr(ch,text)!=0)
  5.             printf("%s",ch);
  6.     }
  7. while(!feof(fp));

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

  1. В коде используется цикл do-while, который выполняет блок кода до тех пор, пока условие истинно.
  2. Условие цикла - это проверка на достижение конца файла (feof(fp)).
  3. Внутри цикла выполняется чтение строки из файла с помощью функции fgets.
  4. Переменная ch является буфером для хранения прочитанной строки, ее размер 255 символов.
  5. Если в строке есть заданный текст (проверка с помощью функции strstr), то эта строка выводится на экран с помощью функции printf.
  6. Цикл продолжается до тех пор, пока не будет достигнут конец файла.
  7. Заданный текст, который ищется в строках файла, хранится в переменной text.
  8. Файл, из которого считываются строки, открывается с помощью функции fopen и обозначается переменной fp.

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


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

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

12   голосов , оценка 4 из 5

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

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

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