gpt4 book ai didi

c++ - 为什么 strtok 采用 char* 而不是 const char*?

转载 作者:行者123 更新时间:2023-12-01 15:05:23 24 4
gpt4 key购买 nike

据我所知,strtok() 不会修改底层字符串,所以为什么它不采用 const char* 指针而不是const char* 指针?此外,在标记化时,您不希望更改字符串,对吗?

更新: https://godbolt.org/z/3SPvRB很明显,strtok() 确实修改了底层字符串。非变异分词器的替代方案是什么?

最佳答案

但是 strtok 确实 改变了字符串。

采用以下代码:

char sz[] = "The quick brown fox";
char* token = strtok(sz, " ");

它将数组的内容更改为:

"The\0quick brown fox";

第一个发现的分隔符被替换为空字符。在内部(通过线程本地存储或全局变量),指向发现的定界符之后的下一个字符的指针被存储,以便随后调用 strtok(NULL, "") 将从中解析下一个标记原始字符串。

关于c++ - 为什么 strtok 采用 char* 而不是 const char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572907/

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