Поиск слова в текстовом файле - C (СИ) (148196)

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

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

Почему программа вылетает ? Когда пробую на линуксе, там вообще дамп памяти. Необходимо найти слово в файле, и вывести их количество, сколько раз это слово повторялось.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]){
FILE *mf;
char str[100];
char *estr;
char *istr;
//char *istr1;
char strArray[100];
char buf = "hello";
int count;
 
mf=fopen ("C:/Users/User1/Desktop/1.txt","r");
char sep [10]=" ";
 
estr = fgets (str,sizeof(str),mf);
if (estr == NULL){
 
if ( feof (mf) != 0){
 
}
else{
    printf("\nError read file\n");
}
}
    fclose(mf);
    istr = strtok (str,sep);
    int i=0;
    int cnt = sizeof(strArray)/sizeof(char);
    printf("%d\n", cnt);
    while (istr != NULL)
    {
        istr = strtok (NULL,sep);
        printf("%s\t", istr);
            if (strcmp(istr, buf)==0) 
            {
                count++;
            }
return 0;
}

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

textual
Листинг программы
istr = strtok (NULL,sep);

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

  1. Входные данные: текстовый файл, который нужно проанализировать
  2. Строка-разделитель (NULL) инициализируется как пустая строка
  3. Первая строка в файле считывается в строку istr
  4. istr используется как первая строка для функции strtok()
  5. В качестве разделителя используется строка-разделитель (NULL)
  6. Функция strtok() разбивает istr на отдельные слова и возвращает первое слово
  7. Результат сохраняется в переменной word
  8. word выводится на экран
  9. Процесс повторяется для следующего слова в файле
  10. Каждое слово выводится на экран после обработки
  11. Если достигается конец файла, программа завершается
  12. В процессе работы программа не обрабатывает ошибки
  13. В процессе работы программа не обрабатывает специальные символы или форматирование текста
  14. Программа не обрабатывает повторные пробелы или другие символы-разделители в тексте
  15. Программа не обрабатывает числа или другие не текстовые данные в файле
  16. Программа не обрабатывает длинные текстовые файлы, которые могут привести к переполнению буфера
  17. Программа не обрабатывает случаи, когда файл пуст или не содержит текста для анализа
  18. Программа не обрабатывает случай, когда файл не может быть открыт или прочитан
  19. Программа не обрабатывает случай, когда файл содержит некорректный формат данных
  20. Программа не обрабатывает случай, когда файл слишком большой для загрузки в память

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


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

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

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