C 将.txt文件拆分为单词,并将每个单词存储在数组中

C 将.txt文件拆分为单词,并将每个单词存储在数组中,c,arrays,string,C,Arrays,String,假设我的文件有大约1000个单词,带有逗号、点和分号。 我必须将文本拆分为单词(可能使用“strtok”,但我不知道如何正确执行),然后将这些单词写入数组。怎么做这样的事?有人能写一段工作代码并解释它是如何工作的吗?我希望这个程序能帮助你。它可能并不完美,但它接近你所问的 #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { char str[5000];

假设我的文件有大约1000个单词,带有逗号、点和分号。
我必须将文本拆分为单词(可能使用“strtok”,但我不知道如何正确执行),然后将这些单词写入数组。怎么做这样的事?有人能写一段工作代码并解释它是如何工作的吗?

我希望这个程序能帮助你。它可能并不完美,但它接近你所问的

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    char str[5000];
    char *ptr;
    char *words[5000];
    FILE * fp = fopen("hi.txt", "r");
    fgets(str, 49, fp);             // read 49 characters
    ptr = strtok(str, ",.; ");         // split our findings around the " "
    int i = 0;
    while(ptr != NULL)  // while there's more to the string
    {
        words[i]= ptr;
        i++;
        ptr = strtok(NULL, ",.; "); // and keep splitting
    }
    fclose(fp);

    for(int j=0;j<i;j++) {
        printf("%s\n", words[j]);
    }
}
试验

让我们看看你尝试了什么,让我们看看你的努力。这纯粹是你的懒惰。有人能写一段工作代码并解释它是如何工作的吗?这是不赞成的。细节
fgets(str,49,fp);//读取49个字符
最多可读取48个字符。
foo, bar. baz; bletch. 
./a.out
foo
bar
baz
bletch