C++中strcpy的用法,谢谢~

#include<iostream>usingnamespacestd;voidmain(){chara[7]="abcdef";charb[4]="ABC";strcp... #include<iostream>
using namespace std;
void main()
{
char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
cout<<a[5]<<endl;
}

#include<iostream>
using namespace std;
void main()
{
char a[10]="abcdef";
char b[10]="ABC";
strcpy(a,b);
cout<<a[5]<<endl;
}

#include<iostream>
using namespace std;
void main()
{
char a[8]="abcdefg";
char b[4]="jkl";
strcpy(a+1,b+2);
cout<<a<<endl;
}

第一个程序输出"f",第二个程序输出"al",我想问一下为什么会得到这两个结果?这两个程序分别是怎么运行的得出它们,谢谢啊!
第二个程序代码是多打的,不还意思,大家忽略第二个
展开
 我来答
porker2008
推荐于2017-10-15 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.2亿
展开全部
#include<iostream>
using namespace std;
void main()
{
char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
cout<<a[5]<<endl;
}
这个程序原本a中的数据是 "abcdef\0", b中的数据是"ABC\0"
strcpy(a,b); 把b中的字符串复制到a中, 所以a变成了"ABC\0ef\0"
所以你输出a[5], 就是f啦
----
#include<iostream>
using namespace std;
void main()
{
char a[8]="abcdefg";
char b[4]="jkl";
strcpy(a+1,b+2);
cout<<a<<endl;
}
这个程序原本a中的数据是 "abcdefg\0", b中的数据是"jkl\0"
strcpy(a+1,b+2); 把b+2中的字符串复制到a+1中
b+2是指"l\0", a+1指 "bcdefg\0"
所以复制完以后a是"al\0defg\0"
所以输出a就是al了 (遇到\0结束输出)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式