Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何使用FGET中的一行生成单词数组?_C_Arrays_Fgets - Fatal编程技术网

C 如何使用FGET中的一行生成单词数组?

C 如何使用FGET中的一行生成单词数组?,c,arrays,fgets,C,Arrays,Fgets,我的输入来自一个包含多行文本的文件。在使用fgets()获得一行之后,如何生成一个数组,其中包含该行中的单词,然后可以对其进行迭代?从“粉红弗洛伊德”到{“粉红”,“弗洛伊德”} 您可以使用strok()函数从一行文本中提取单词。 见和 strtok()函数将修改行[]的内容,但 我想这种用法没问题,因为您刚刚在那里写了一行输入 你很快就会在上面写下另一行输入 您必须分配一个单独的数组来保存指向单个单词的指针。 如果您打算在读取下一行输入后继续使用此数组,您将 需要为strtok()返回的字符串

我的输入来自一个包含多行文本的文件。在使用fgets()获得一行之后,如何生成一个数组,其中包含该行中的单词,然后可以对其进行迭代?从“粉红弗洛伊德”到{“粉红”,“弗洛伊德”}


您可以使用
strok()
函数从一行文本中提取单词。 见和

strtok()
函数将修改
行[]
的内容,但 我想这种用法没问题,因为您刚刚在那里写了一行输入 你很快就会在上面写下另一行输入

您必须分配一个单独的数组来保存指向单个单词的指针。 如果您打算在读取下一行输入后继续使用此数组,您将 需要为strtok()返回的字符串创建新副本,因为它返回的是
是指向
字符行[500]
的指针,下一行输入将覆盖它们。

1。制作一个新的数组;2.循环浏览行中的单词,并将每个单词复制到新数组中。
int main() {
    char line[500];
    while(fgets(line, sizeof(line), stdin) != NULL) {
        ...
    }
    return 0;
}