gpt4 book ai didi

c - 使用 strtok() 在 c 中将字符串标记两次

转载 作者:太空狗 更新时间:2023-10-29 16:58:35 25 4
gpt4 key购买 nike

我在 c 中使用 strtok() 来解析 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 循环中,它总是在找到第一个标记后结束,即使还有更多标记。有人知道我做错了什么吗?

最佳答案

strtok() 修改它操作的字符串,将分隔符替换为空值。因此,如果您想多次使用它,则必须复制一份。

关于c - 使用 strtok() 在 c 中将字符串标记两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com