问题标题:
#includemain(){char*t1,*t2,a[20]="abcdefgh";t1="MNWE"t2="KLSI";strcpy(a+3,t2+2)#includemain(){char*t1,*t2,a[20]="abcdefgh";t1="MNWE";t2="KLSI";strcpy(a+3,t2+2);strcat(a,t1+1);printf("%d",strlen(a));}那位大师能告诉我输出结果啊?
问题描述:
#includemain(){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
容晓峰回答:
能告诉为什么吗?谢谢!
万江文回答:
#includemain(){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}另外,指针不申请内存直接赋值的习惯非常不好,最好改正。
查看更多