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.
#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.