#include main() { char *t1,*t2,a[20]="abcdefgh"; t1="MNWE" t2="KLSI"; strcpy(a+3,t2+2)

问题描述:

#include main() { char *t1,*t2,a[20]="abcdefgh"; t1="MNWE" t2="KLSI"; strcpy(a+3,t2+2)
#include
main()
{ char *t1,*t2,a[20]="abcdefgh";
t1="MNWE";
t2="KLSI";
strcpy(a+3,t2+2);
strcat(a,t1+1);
printf("%d",strlen(a));}
那位大师能告诉我输出结果啊?
t2="KLSI"; strcpy(a+3,t2+2); st

8能告诉为什么吗?谢谢!#include main() { char *t1,*t2,a[20]="abcdefgh"; a=“abcdefg" t1="MNWE";t2="KLSI";strcpy(a+3,t2+2);把t2+2开始的字符串,也就是"SI",复制到从a+3开始地方,这时a=“abcSI"strcat(a,t1+1); 把t1+1开始的字符串,也就是"NWE"附加在a的后面,这时a="abcSINEW"printf("%d",strlen(a));显示a的长度,就是8}另外,指针不申请内存直接赋值的习惯非常不好,最好改正。