我strtok()
在 c 中使用来解析 csv 字符串。首先,我对其进行标记以找出有多少标记,以便分配正确大小的字符串。然后我使用上次用于标记化的相同变量。每次我第二次执行它时,它strtok(NULL, ",")
都会返回NULL
,即使还有更多的标记要解析。有人可以告诉我我做错了什么吗?
char* tok;
int count = 0;
tok = strtok(buffer, ",");
while(tok != NULL) {
count++;
tok = strtok(NULL, ",");
}
//allocate array
tok = strtok(buffer, ",");
while(tok != NULL) {
//do other stuff
tok = strtok(NULL, ",");
}
因此,在第二个 while 循环中,它总是在找到第一个标记后结束,即使有更多标记也是如此。有人知道我做错了什么吗?