我是否正确理解strtok使源字符串充斥着空字符?
strtok
我可以理解,每个新的迭代调用都首先将原始字符替换为空字符,然后继续,最后一次调用由于没有行进而返回null,然后替换最后一个空字符,最后放回原处。结果,源字符串最终将保持不变。 (当然,您是否要在上一次调用之前停止,源字符串将保持修改状态。)
但是没有文档提到这种策略。因此,如果希望源字符串保持不变,我必须先将源字符串复制到另一个缓冲区,然后再使用strtok处理?
[strtok是破坏性的,在标准中有描述
如果找到这样的字符,则将其覆盖为null字符,该字符终止当前令牌。
7.21.5.8