Моя программа останавливается при завершении первой строки текстовых файлов. Программа отлично работает без добавления функции фильтрации. Может ли кто-нибудь указать на ошибку?
Вывод:
the
project
gutenberg
ebook
of
alic
s
adventur
in
wonderland
by
lewi
carroll
Ошибка сегментации: 11
Код программы следующий:
int main(void) {
char line[MAXLINE];
FILE *text = fopen("test_1.txt", "r");
while (fgets(line, sizeof(line), text)!= NULL) {
//reading to the end
if (strstr(line, ENDING) != NULL) break;
//tokenise the string
char *lower_line = strlwr(line);
char * pch = filter(strtok(line, " ,.-?"));
while (pch != NULL){
printf("%s\n", pch);
pch = filter(strtok(NULL, " ,.-?'"));
}
}
fclose(text);
}
char *filter (char *word){
int k = stem(word, 0, strlen(word)-1);
word[k+1] = '\0';
return word;
}
char* strlwr(char* s){
char* tmp = s;
for (;*tmp;++tmp) {
*tmp = tolower((unsigned char) *tmp);
}
return s;
}