gpt4 book ai didi

c++ - 包含\0的字符串长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:44 28 4
gpt4 key购买 nike

 char p[]="abc\012\0x34"; 
printf("%d\n",strlen(p));

我得到输出 4。它不应该是 3 吗???虽然为了跟随我得到 3.

 char p[]="abc\0"; 
printf("%d\n",strlen(p));

最佳答案

您的字符串确实\0之前包含四个字符,即abc \012

后者是有效的八进制转义序列,十进制为 10,即 ASCII 换行符。

另一方面,

\0x34 不是有效的八进制 - 只有 \0 部分有效,因此这是 NUL 终止字符串的真正结尾。

关于c++ - 包含\0的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327343/

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