Найти слово в текстовом файле по заданному шаблону - C (СИ)

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

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

Здравствуйте! Помогите пожалуйста... Умоляю!!! Уже несколько дней бьюсь над задачкой!

Нужно ввести слово, неизвестные буквы помечать _

*нижним подчеркиванием*

. Например:

ко_

И вывести все возможные слова с текстового файла. Например:

кот код

P.S. В текстовом файле каждое новое слово записано с новой строки. Наброски:
#include <stdio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    char word[30], temp[30];
    system("chcp 1251 > nul");
    printf("Введите слово (неизвестные буквы обозначайте знаком подчеркивания _):\n");
    scanf_s("%s", &word, 30);
    //??????????????? Поиск слова в текстовом файле ??????????????
    FILE *f;
    f = fopen("words.txt", "r");
    if(f)
    {
        fclose(f);
    }
    //////////////////////////////////////////////////////////////////////////
    printf("Все возможные слова с вашим запросом (%s):\n", word);
    /*if(
    {
        //printf("%s", word)
    }*/

Решение задачи: «Найти слово в текстовом файле по заданному шаблону»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define MAXWORDSIZE 30
 
int match_template(const char* src, const char* tpl)
{
    for(; *src == *tpl || *tpl == '_'; src++, tpl++)
    {
        if(*src == '\0')
            return 1;
    }
    return 0;
}
 
int main()
{
    char buf[MAXWORDSIZE];
    char word[MAXWORDSIZE];
    size_t tsize;
    FILE* fp;
    
    puts("Введите слово (неизвестные буквы обозначайте знаком подчеркивания _):");
    scanf("%s", word);
    tsize = strlen(word);
    
    fp = fopen("words.txt", "r");
    printf("Все возможные слова с вашим запросом (%s):\n", word);
    while(fscanf(fp, "%s", buf) > 0)
    {
        if(strlen(buf) != tsize)
            continue;
        if(match_template(buf, word))
            puts(buf);
    }
    fclose(fp);
    return 0; 
}

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

  1. Включаются необходимые заголовочные файлы
  2. Определяется максимальная длина слова в файле words.txt
  3. Функция match_template ищет соответствие шаблону в тексте
  4. В функции main считывается слово с помощью сканера
  5. Открывается файл words.txt для чтения
  6. Выводится запрос на ввод слова
  7. Считывается текст из файла words.txt и проверяется на соответствие шаблону
  8. Если слово соответствует шаблону, оно выводится на экран
  9. Файл words.txt закрывается
  10. Программа завершается

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


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

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

15   голосов , оценка 3.933 из 5
Похожие ответы