c - 在 C 中将 strsep() 与动态字符串数组一起使用

标签 c arrays string pointers

我有以下代码:

#include <string.h>

int main(void) {
    char *buffer = NULL, **words = NULL, *aPtr = NULL, *sPtr;
    int count = 0;

    buffer = strdup("The quick brown fox jumps over the lazy dog");
    sPtr = buffer;

    do {
        aPtr = strsep(&sPtr, " ");

        words[count++] = ... // missing code
    } while(aPtr);

    return 0;
}

如您在上面看到的,我缺少一些代码...是否有任何类型的 strdup() 可以处理这种情况? strdup() 函数本身似乎不起作用...如果没有,我怎样才能使这段代码起作用?

指针的指针让我头疼...

最佳答案

到目前为止你还没有分配 words[0], words[1], ...所以使用 strdup 没有帮助.

更糟糕的是,您事先不知道将有多少个单词,因此 malloc 您需要的空间并非易事。

一种选择是用链表或动态数组替换words

关于c - 在 C 中将 strsep() 与动态字符串数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908759/

相关文章:

java - 使用compareTo(String) 按字母顺序排列数组中的字符串?

javascript - 过滤/删除重复变量

java - 存储以长度为键的字符串关联数组

c - 如何在c中扫描一个紧跟字母 'e'的 float ?

c - 查找数组中的重复项

c - 如果传递了冲突的编译器标志,GCC 会如何表现?

c - C 编程中的类型不匹配

c - C语言中的time()

ios - 如何在Objective-C中创建多个锯齿状数组

c++ - 如何将可变数量的char数组元素转换为字符串