首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请大家帮帮忙!解决方法

2012-02-23 
请大家帮帮忙!~~main(){charch1[] ABCD ,ch2[] ABCD ; if(strlen(ch1) strlen(ch2))puts(ch1);else

请大家帮帮忙!~~
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了

热点排行