Получите все строки файла f, содержащие в качестве фрагмента заданную строку s - C (СИ)
Формулировка задачи:
#include <iostream> #include <string> #include <fstream> using namespace std; int main(){ ifstream ff; string s; string str; getline(cin,str); ff.open("tr.txt"); while(!ff.eof()){ getline(ff,s); size_t f=s.find(str); if(f!=std::string::npos){ cout<<s<<endl; } } ff.close(); return 0; }
Решение задачи: «Получите все строки файла f, содержащие в качестве фрагмента заданную строку s»
textual
Листинг программы
int main() { FILE *ff; char s[1000], str[1000]; char *f; fgets(str, 1000, stdin); str[strlen(str) - 1] = '\0'; ff = fopen("tr.txt", "r"); while (fgets(s, 1000, ff) != NULL) { f = strstr(s, str); if (f != NULL) printf("%s\n", s); } fclose(ff); return 0; }
Объяснение кода листинга программы
В этом коде:
- Считывание строки s с помощью функции fgets() из стандартного ввода (stdin).
- Передача этой строки в функцию strstr() для поиска ее в каждой строке файла
tr.txt
. - Если строка s содержит строку s, то эта строка выводится на экран с помощью функции printf().
- Функция fclose() закрывает файл после окончания чтения.
- Функция return() завершает выполнение программы.
Этот код ищет строку s в каждой строке файла
tr.txt
и выводит на экран все строки, содержащие эту строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д