Помощь пожалуйста! Даю 100 баллов!
Надо сделать это задание на языке "C"
Пожалуйста сделать все по заданию!
Те кто будет писать бред чтобы забрать баллы, улетают в бан!
Задание:
В одном файле задан список ключевых слов. Нужно вывести из другого файла
предложения, содержащие хотя бы одно из ключевых слов.
Ответы
Ответ:
#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() для поиска ключевого слова в строке. Если ключевое слово найдено, он печатает строку и переходит к следующей строке. Если ключевое слово не найдено, то выполняется переход к следующему ключевому слову в массиве. Этот процесс повторяется до тех пор, пока не будет достигнут конец файла.