strlen问题
int main(void){
char b[10]="125\0679";
printf("%d %d",sizeof(b),strlen(b));
return 0;
}
结果为10 5
而
int main(void)
{
char b[10]="125679";
printf("%d %d",sizeof(b),strlen(b));
return 0;
}
结果为10 6
为什么前面strlen(b)为5
2018-03-21 00:56
2018-03-21 01:08

~[此贴子已经被作者于2018-3-21 02:49编辑过]

2018-03-21 02:40
~
程序代码:
#include<stdio.h>
#include<string.h>
int main( void )
{
char b[10]="125\0679";
char c[10]={'1','2','5','\0','6','7','9'};
char d[10]="125\000679";
char e[10]="125\0""679";
printf("%u %u\n",sizeof(b),strlen(b));
printf("%u %u\n",sizeof(c),strlen(c));
printf("%u %u\n",sizeof(d),strlen(d));
printf("%u %u\n",sizeof(e),strlen(e));
puts(b);
puts(c);
puts(d);
puts(e);
return 0;
}
[此贴子已经被作者于2018-3-21 09:31编辑过]

2018-03-21 02:46
2018-03-22 01:01