Предмет: Информатика, автор: Аноним

Помощь пожалуйста! Даю 100 баллов!
Надо сделать это задание на языке "C"
Пожалуйста сделать все по заданию!


Те кто будет писать бред чтобы забрать баллы, улетают в бан!

Задание:
В одном файле задан список ключевых слов. Нужно вывести из другого файла
предложения, содержащие хотя бы одно из ключевых слов.

Ответы

Автор ответа: iceoleg
1

Ответ:

#include <stdio.h>

#include <string.h>

#define MAX_KEYWORDS 100

#define MAX_LINE_LENGTH 1000

int main(int argc, char* argv[]) {

 // Check that the correct number of command line arguments were provided

 if (argc != 3) {

   printf("Usage: %s keyword_file sentence_file\n", argv[0]);

   return 1;

 }

 // Open the keyword file for reading

 FILE* keyword_file = fopen(argv[1], "r");

 if (keyword_file == NULL) {

   printf("Error opening keyword file: %s\n", argv[1]);

   return 1;

 }

 // Read in the keywords from the keyword file

 char keywords[MAX_KEYWORDS][MAX_LINE_LENGTH];

 int num_keywords = 0;

 while (fgets(keywords[num_keywords], MAX_LINE_LENGTH, keyword_file)) {

   num_keywords++;

 }

 fclose(keyword_file);

 // Open the sentence file for reading

 FILE* sentence_file = fopen(argv[2], "r");

 if (sentence_file == NULL) {

   printf("Error opening sentence file: %s\n", argv[2]);

   return 1;

 }

 // Read in the sentences from the sentence file and search for keywords

 char line[MAX_LINE_LENGTH];

 while (fgets(line, MAX_LINE_LENGTH, sentence_file)) {

   // Iterate through the keywords and search for them in the line

   for (int i = 0; i < num_keywords; i++) {

     if (strstr(line, keywords[i]) != NULL) {

       // Keyword found in line, so print the line

       printf("%s", line);

       break;

     }

   }

 }

 fclose(sentence_file);

 return 0;

}

Объяснение:

Этот код сначала считывает ключевые слова из файла ключевых слов и сохраняет их в массиве. Затем он открывает файл предложений и читает предложения по одной строке за раз. Для каждой строки он итеративно просматривает массив ключевых слов и использует функцию strstr() для поиска ключевого слова в строке. Если ключевое слово найдено, он печатает строку и переходит к следующей строке. Если ключевое слово не найдено, то выполняется переход к следующему ключевому слову в массиве. Этот процесс повторяется до тех пор, пока не будет достигнут конец файла.

Похожие вопросы
Предмет: Английский язык, автор: brustanya