【发布时间】:2015-06-20 17:27:38
【问题描述】:
这是strtok()的解释。
#include <string.h>
char* strtok( char* s1,
const char* s2 );*
第一次调用 strtok() 返回指向第一个标记的指针 s1 指向的字符串。对 strtok() 的后续调用必须传递一个 NULL 指针作为第一个参数,以获取下一个标记 字符串。
但我不知道,为什么必须传递 NULL 指针才能获取字符串中的下一个标记。我搜索了大约 15 分钟,但在互联网上没有找到解释。
【问题讨论】:
-
如果代码没有通过
NULL,代码应该通过什么来继续标记相同的字符串? -
我想这只是为了让您可以选择不立即标记整个字符串,而无需自己跟踪从哪里开始下一个标记。如果现在这是用 C++ 设计的,那很可能会有所不同。
-
您没有在搜索中看到cplusplus.com/reference/cstring/strtok?
-
因为这是 40 年前的设计方式。不良。单线程和单次使用(不可嵌套),而不是提供上下文对象。
-
我搜索的词是“non-re entrant”。
标签: c++ c string pointers strtok