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-3-21 02:49编辑过]
#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编辑过]