【发布时间】:2019-09-08 22:16:04
【问题描述】:
我正在尝试创建一个字符串解析器,它使用分隔符将字符串分解为字符串数组。我正在使用我了解如何使用的函数“strtok”。我不明白的是如何让我的解析函数返回字符串中不同单词的数组。自从我使用 C 以来已经有一段时间了,所以这被证明是相当困难的。
char ** parseString(char * inString){
char **ptr; //What I want to return, an array of strings
int count = 0;
ptr[count] = strtok(inString, " ");
count++;
while(inString!=NULL){
ptr[count]=strtok(NULL, " ");
count++;
}
return ptr;
}
我知道上面的代码行不通。我隐约记得如何使用malloc,并且我知道我上面的代码会导致seg fault,因为我没有malloced,但上面基本上是我想要发生的。如果我什至不知道我的字符串数组中需要多少个单词,我该如何适当地 malloc?
【问题讨论】:
-
选项 1) 猜一猜。如果数组填满,
realloc使其更大。如果你把它太大了,realloc最后让它变小。 -
选项2),解析字符串两次。第一次,您只需计算阵列需要多大。第二次做实际工作
-
什么时候,
inString指向的数据需要保持原来的样子?
标签: c