【发布时间】:2022-08-02 18:58:09
【问题描述】:
函数 strlen() 计算字符串中最多为 NUL 的字符数,它不包含 NUL。在 ASCII 中,NUl 等于 \'\\0\'。
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[]=\"abc\";
char b[]=\"abcd\'\\0\'def\";
printf(\"%d\\n%d\",strlen(a),strlen(b));
return 0;
}
结果是 3 和5. 第二个结果与第一个结果相矛盾。 因此,我试图找到如何实现 strlen()。
int strlen(char a[])
{
int i;
for(i=0;a[i]!=\'\\0\';i++);
return i;
}
基于此代码,我可以理解第一个结果,但真的无法理解第二个结果。 为什么第二个结果不是 4 而是 5?提前谢谢。
-
仅对 char 文字使用单引号。
-
将 b[] 打印到控制台...您会看到(左)撇号是神秘的第 5 个字符...删除 \\0 您会看到有两个撇号...
-
a, b, c, d, 单引号, 空字符, 单引号, d, e, f
标签: c