【问题标题】:How to make an array of words using a line from fgets?如何使用 fgets 中的一行创建一个单词数组?
【发布时间】:2014-09-21 23:47:56
【问题描述】:

我的输入来自一个包含多行文本的文件。在使用 fgets() 获得一行之后,如何创建一个包含该行中单词的数组,然后我可以遍历它? IE。从 "pink floyd" 到 {"pink", "floyd"}。

int main() {
    char line[500];
    while(fgets(line, sizeof(line), stdin) != NULL) {
        ...
    }
    return 0;
}

【问题讨论】:

  • 1.制作一个新数组; 2. 循环浏览该行中的单词并将每个单词复制到新数组中。

标签: c arrays fgets


【解决方案1】:

您可以使用strtok() 函数从一行文本中提取单词。 见How does the strtok function in C work?http://www.cplusplus.com/reference/cstring/strtok/

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2013-11-23
    • 2021-02-22
    • 2020-03-16
    • 1970-01-01
    相关资源
    最近更新 更多