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

char *s1="12345",*s2="1234"; printf("%dn",strlen(strcpy(s1,s2)));
血丝玉镯 1年前 已收到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年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 2.515 s. - webmaster@yulucn.com