请教字符串复制出现的问题!
程序:#include<stdio.h>
#include<string.h>
int main()
{
char s1[]="nihaone nihaoa nihaobu nihaihaoa\n ";
char s2[]="good good study,day day up!\n";
char s3[]="misssing you!\n";
printf(s1);
printf(s2);
printf(s3);
strcpy(s1,s2);
strcpy(s3,s2);
printf(s1);
printf(s2);
printf(s3);
return 0;
}
输出结果:
nihaone nihaoa nihaobu nihaihaoa
good good study,day day up!
misssing you!
good good study,day day up!
day day up!
good good study,day day up!
问题:为什么字符串S2在第二次打印的时候变成了:day day up! 而不是:good good study,day day up!
先谢谢了,呵呵
搜索更多相关的解决方案:
字符
----------------解决方案--------------------------------------------------------
我运行的是这样?不知道楼主是用什么编译器调式的.
顺便说句闲话good good study,day day up!这个好亲切
----------------解决方案--------------------------------------------------------
我是在linux下运行的,感觉好奇怪呢?!
不知道什么原因呢?
毛主席从小就教导我们:good good study,day day up!嘿嘿……
还是很感谢楼上的,呵呵
----------------解决方案--------------------------------------------------------
数组s3[]比s2[]小,怎么复制啊?
----------------解决方案--------------------------------------------------------
其实数组s1[],s2[],s3[]是在内存空间上是连续分配的,s2[]的长度超过s3[],把s2[]复制给s3[],导致s2[]的一部分被复制的内容覆盖,所以出现了你那个情况
----------------解决方案--------------------------------------------------------
呵呵,谢谢楼上的啊!好像就是这个原因。
----------------解决方案--------------------------------------------------------