gpt4 book ai didi

c - C编程中的strtok函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:35 30 4
gpt4 key购买 nike

pch = strtok(str," ");
strcpy(piece1,pch);
printf("\n piece1 : %s \n",piece1);
while(pch != NULL){
printf("\n %s \n",pch);
pch = strtok(NULL," ");
if(pch != NULL){
strcpy(piece2,pch);
printf("\n piece2 : %s \n",piece2);
}
}

strtok(str, "")'\0' 填充字符串中的空格。 strtok(NULL, "") 有什么作用?它如何在获得第一个 token 后拆分剩余的字符串。

最佳答案

strtok 会做一些可能被认为是危险的事情。也就是说,当您调用它并且第一个参数不是 NULL 时,它会将该参数和一些其他信息保存在静态变量中(使其完全线程不安全)。

只要您一直传递 null,它就会使用您最初传递给它的相同 char 数组来查找更多标记。

实际上,更可能的实现是将它在字符串中的位置保存在静态变量中。它不应该关心你的字符串从哪里开始;它只关心它在字符串中的位置。

此外,请记住 strtok 正在更改您传递给它的实际字符串,因此如果您需要该字符串中没有一堆 '\0',您应该复制它在调用 strtok 之前。

关于c - C编程中的strtok函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19034010/

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