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

血丝玉镯2022-10-04 11:39:541条回答

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

已提交,审核后显示!提交回复

共1条回复
SHEFan 共回答了19个问题 | 采纳率73.7%
你这个申明是有问题的 s1和s2只是字符串执针,并没有分配实际的存储空间
正确的应该是:
char s1[6]="12345",s2[5]="1234";
printf("%dn",strlen(strcpy(s1,s2)));
strcpy的返回结果是s1的起始地址,但拷贝之后s1变成的"1234",第5个字节为' ',所示strlen的结果为4
1年前

相关推荐