@linawhite

Как считать из файла определенное слово, и посчитать сколько раз оно появляется в файле СИ?

Мне нужно написать программу на СИ которая должна будет считывать данные из заданного txt файла и посчитать сколько раз в файле появляется слово ananas. При чем можно использовать только 4 ф-ции: fopen(), fclose(), fgetc(), fputc().
Я думаю о таком варианте, как начинать читать файл, и записывать первые 6 символов в переменную sequence, потом сравнивать sequence и word. Если они будут равны, тогда увеличивать counter на 1 и начинать считывать следующие 6 символов с 7-го символа в файле. Если не равны, тогда считывать 6 символов, начиная со 2-го символа в файле и так далее. Но проблема в том, что нельзя использовать ф-цию fseek. И также можно было бы записывать весь текст в массив, и бежать по нему, но файл может быть любой, я не смогу инициализировать массив, не зная размера
Подскажите пожалуйста как можно это реализовать?
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    char word = "ananas";
    int counter = 0;
    char sequence[6];
    
    FILE * fp;
    fp = fopen(argv[1], "r");

    char chr;
    if (fp != NULL) {
        while((chr = fgetc(fp)) != EOF) {
            
        }
    }
    fclose(fp);

    return 0;
}
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Почему вопрос градуирован как "сложный"? Тебе нужен символьный буфер на 6 символов. Вот и пиши в него
по кругу. Как только в круге появится ананас - вот и считай плюс один.

Кстати где твоя попытка хоть написать привет-мир с файлами?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы