strlen() 即使在空终止符之后也对字符进行计数

strlen() counts characters even after the null terminator

#include<stdio.h>
#include<string.h>

int main() {
char a[100]="123467"; //Answer: 6
int len=strlen(a);
printf("%d",len); 
}

此代码输出 6 作为答案。它不应该打印 4 因为 strlen returns 计数直到遇到空字符吗?

但是当\0和5之间包含space时,它returns4作为答案

char a[100]="1234[=11=] 567"; //Answer: 4

我是不是漏掉了什么?

你的第一个版本有八进制数 6 而不是 [=12=] 字符

编辑: 在类似情况下使用 [=13=]0 八进制序列代替:

/* from your example*/ char a[100]="1234[=10=]0567";

其中6为单个字符,八进制ASCII码为(56)8,十进制为-(46)10.