请大家帮帮忙!~~
main( )
{
char ch1[ ]= "ABCD ",ch2[ ]= "ABCD ";
if ( strlen(ch1)> strlen(ch2)) puts(ch1) ;
else puts(ch2) ;
if (strcmp(ch1,ch2)> 0)
{
strcat(ch1,ch2) ;
puts(ch1);
}
else
{
strcat(ch1,ch2);
puts(ch2);
}
strcpy(ch1,ch2);
puts(ch1);
}
结果是ABCD AbcdABCD CD 我想知道结果中出现的CD是怎么得出来的?请帮帮一个爱学习的人吧!~~
[解决办法]
comman_ndsc,原因很简单,还是溢出. "ABCD "+ '0 '总共五字符号,tc可能对齐到了6个字符,也就是ch1占了0-5,接着ch2,strcat溢出,于是,0-5变成ABCDAB,6-9是CD\0D\0,6是ch2的地址,puts(ch2)
输出的自然就是CD了