我有以下代码:
#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/