是函数strtok的返回值中包含的空字符?

use*_*055 3 c string

对于返回的字符串strtok,它\0最后是否有一个?或者不是,像strncpy功能?

我会通过复制的检查返回值是否strtok到另一个字符串数组strcpy,但当时我不知道,如果附加的\0是效果strtok还是strcpy(因为strcpy不添加\0).

编辑:抱歉,我无法"将返回值复制strtok到另一个字符串数组中strcpy".

Ran*_*dan 10

来自cplusplus.com

令牌的这一端自动替换为空字符,并且该函数返回令牌的开头.

  • @ user81055我认为你需要首先理解指针,然后你会明白没有"字符串"这样的东西,只是一个8位整数数组,其结尾用0表示.`strtok`返回一个指向你应该在传递它的数组中的位置的指针,在适当的位置设置0以标记相关部分的结尾. (3认同)

Yu *_*Hao 5

从C99 7.24.5.8

然后strtok函数从那里搜索当前分隔符字符串中包含的字符.如果未找到此类字符,则当前标记将扩展到s1指向的字符串的末尾,随后对标记的搜索将返回空指针.如果找到这样的字符,它将被空字符覆盖,该字符终止当前令牌.strtok函数保存指向以下字符的指针,从该字符开始下一次搜索令牌.