char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,

題目:

char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));

解答:

你這個申明是有問題的 s1和s2隻是字符串執針,並沒有分配實際的存儲空間
正確的應該是:
char s1[6]="12345",s2[5]="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
strcpy的返回結果是s1的起始地址,但拷貝之後s1變成的"1234",第5個字節爲'\0',所示strlen的結果爲4

添加新評論

暱稱
郵箱
網站