Поиск слова в текстовом файле - 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);
Объяснение кода листинга программы
- Входные данные: текстовый файл, который нужно проанализировать
- Строка-разделитель (NULL) инициализируется как пустая строка
- Первая строка в файле считывается в строку
istr istrиспользуется как первая строка для функции strtok()- В качестве разделителя используется строка-разделитель (NULL)
- Функция strtok() разбивает
istrна отдельные слова и возвращает первое слово - Результат сохраняется в переменной
word wordвыводится на экран- Процесс повторяется для следующего слова в файле
- Каждое слово выводится на экран после обработки
- Если достигается конец файла, программа завершается
- В процессе работы программа не обрабатывает ошибки
- В процессе работы программа не обрабатывает специальные символы или форматирование текста
- Программа не обрабатывает повторные пробелы или другие символы-разделители в тексте
- Программа не обрабатывает числа или другие не текстовые данные в файле
- Программа не обрабатывает длинные текстовые файлы, которые могут привести к переполнению буфера
- Программа не обрабатывает случаи, когда файл пуст или не содержит текста для анализа
- Программа не обрабатывает случай, когда файл не может быть открыт или прочитан
- Программа не обрабатывает случай, когда файл содержит некорректный формат данных
- Программа не обрабатывает случай, когда файл слишком большой для загрузки в память