为什么输出是6啊?
因为x的中间出现了字符串结束标识字符 '\0',因此strlen()函数仅计算到该结束字符之前的长度,即 a、\065、\t、\、\57、8,后面的结束符 \0 及其之后的值不在strlen()函数的计算范围之内
考查转义字符,6个字符分别为:
a
\065
\t
\\
\578
\095
#include <stdio.h>
#include <string.h>
int main()
{
char x[]="a\065\t\\\578\095\r\nabc\n\n";
for(int i=0;i<strlen(x);i++)
printf("【%c】",x[i]);
printf("长度:%d",strlen(x));
return 0;
}
输出:
【a】【5】【 】【\】【/】【8】长度:6
字符\n或\r都可以是字符串的终结标志。