I'm trying to get the text from a file and split it into words by removing spaces and other symbols. This is part of my code for handling the file:
void addtext(char wordarray[M][N])
{
    FILE *fileinput;
    char word[N];
    char filename[N];
    char *pch;
    int i=0;
    printf("Input the name of the text file(ex \"test.txt\"):\n");
    scanf("%19s", filename);
    if ((fileinput = fopen(filename, "rt"))==NULL)
    {
        printf("cannot open file\n");
        exit(EXIT_FAILURE);
    }
    fflush(stdin);
    while (fgets(word, N, fileinput)!= NULL)
    {
       pch = strtok (word," ,'.`:-?");
       while (pch != NULL)
       {
         strcpy(wordarray[i++], pch);
         pch = strtok (NULL, " ,'.`:-?");
       }
    }
    fclose(fileinput);
    wordarray[i][0]='\0';
    return ;
}
But here is the issue. When the text input from the file is:
Alice was beginning to get very tired of sitting by her sister on the bank.
Then the output when I try to print it is this:
Alice
was
beginning
to
get
very
tired
of
sitting
by
her
s
ister
on
the
bank
As you can see, the word "sister" is split into 2. This happens quite a few times when adding a bigger text file. What am I missing?
 
     
    