strcpy函数相关!!

#include<string.h>#include<stdio.h>main(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(&b... #include<string.h>
#include<stdio.h>
main()
{
char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",b);
}
这个题的 答案 是CDABC,不过,我不明白。还有,strcpy(s1,s2)函数把s2复制到s1之后,s1里的内容是否会改变?正常是如何改变?
展开
 我来答
killatw
高粉答主

推荐于2017-10-02 · 关注我不会让你失望
知道大有可为答主
回答量:1.8万
采纳率:91%
帮助的人:2315万
展开全部
  strcpy函数:
  C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dst开始的地址空间。
  原型声明:char *strcpy(char* dest, const char *src);
  头文件:#include <string.h> 和 #include <stdio.h>
  功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
zengheng810
推荐于2017-09-21 · TA获得超过155个赞
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
b[i]只能存储一个char型的字符,"CH”是两个字符,所以会将'C’存储在b[0]中,由于数组的内存地址是连续分配的,所以会将'H'存储在b[1]中,系统自动在"CH"后加的字符串结束标识符'\0'存储在b[2]中;
同理,第二个strcpy将字符'D‘、'E'、'\0'依次存储在b[1]、b[2]、b[3]中;
第三个strcpy将字符'A'、'B'、'C'、'\0'依次存储在b[2]、b[3]、b[4]、b[5]中;
这样下来b[0]、b[1]、b[2]、b[3]、b[4]、b[5]存储的依次为C D A B C \0,系统在打印字符串的时候遇到'\0'时会停止。
char *strcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
src字符串尾的字符串结束标识符'\0'也会被复制过去,复制完成后s1中的内容会被覆盖掉
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qcj1012
2011-03-23 · TA获得超过510个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:261万
展开全部
是这么回事 strcpy是把s2指的字符串 复制到是s1那 s1之后都没有了
第一个 把"CH"复制到b[0]那里 b就是CH
第二个 把"DEF"复制到b[1]那里 这个是从1开始的 所以C留下 b变成CDEF
第三个 同理 CD留下 就变成CDABC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式