
展开全部
理解这个程序要求你对字符串操作本质有一定的了解,比如问一下自己,一个字符串究竟多长时按照什么规定的,strcpy这个函数根据什么确定这个字符串的长度。
每个正规的字符串最后都有一个'\0'作为结束符,处理字符串的函数读取字符串中的每个字符当遇到'\0'的时候就认为这个字符串已经到头了,而不会管该字符串实际占多少内存。(可以把\0 当成一个整体,和'a' 'b' 一样,不过不被显示出来)。比如 字符串 "abc\0def"输出只会显示abc
看看这段代码,首先是strcpy 该函数将参数2指向的地址,复制到参数1指向的地址中,参数2是b+2 也就是b[2]内存地址开始,也就是'2'开始,到什么地方结束呢?字符串处理函数统一认为'\0'是结束标志。所以该函数的意思是 让a[1]=b[2] a[2] = b[3] 注意b[3]已经是'\0'了,所以函数停止了。
然后strcat函数拼接字符串,将参数2拼接到参数1后面,首先找到a字符串里的'\0'表示,表示a的结尾,并从此处开始复制参数2 也就是 a[2]=c[1] a[3] = c[2] ......一直到c的结束标志。
所以最终结果是 a2yz
每个正规的字符串最后都有一个'\0'作为结束符,处理字符串的函数读取字符串中的每个字符当遇到'\0'的时候就认为这个字符串已经到头了,而不会管该字符串实际占多少内存。(可以把\0 当成一个整体,和'a' 'b' 一样,不过不被显示出来)。比如 字符串 "abc\0def"输出只会显示abc
看看这段代码,首先是strcpy 该函数将参数2指向的地址,复制到参数1指向的地址中,参数2是b+2 也就是b[2]内存地址开始,也就是'2'开始,到什么地方结束呢?字符串处理函数统一认为'\0'是结束标志。所以该函数的意思是 让a[1]=b[2] a[2] = b[3] 注意b[3]已经是'\0'了,所以函数停止了。
然后strcat函数拼接字符串,将参数2拼接到参数1后面,首先找到a字符串里的'\0'表示,表示a的结尾,并从此处开始复制参数2 也就是 a[2]=c[1] a[3] = c[2] ......一直到c的结束标志。
所以最终结果是 a2yz
来自:求助得到的回答
展开全部
首先你要明白a+1的意思,这是指针中的内容,在C语言中数组名,也就是题中的a,b,c相当于指针的地址,而a+1就是指向 a[1],同理,b+2指向b[2],
这个语句strcpy(a+1,b+2)的意思就是从b[2]后的数据复制到a[1]的后面,复制后的数组a的存储内容是“a2”,(a[1],a[2]被b[2]与'\0'代替)
下面的语句streat(a,c+1)就是将c[1]后的数据贴在数组a的后面即“a2”+“yz”=“a2yz”
如果明白请采纳,不懂请追问
这个语句strcpy(a+1,b+2)的意思就是从b[2]后的数据复制到a[1]的后面,复制后的数组a的存储内容是“a2”,(a[1],a[2]被b[2]与'\0'代替)
下面的语句streat(a,c+1)就是将c[1]后的数据贴在数组a的后面即“a2”+“yz”=“a2yz”
如果明白请采纳,不懂请追问
追问
那请问如果b[ 10]="0123",那么执行语句strcpy(a+1,b+2)后的结果就是a23吗?语句strcpy(a+1,b+2)相当于从a[ 1]开始剪切吗?
追答
对,你说的没错,就是这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是C
strcpy函数先是把从b[2]开始的字符2复制到从a[1]开始的字符串中,由于b[2] 之后就没有字符了,所以a[1]=b[2]='2'; a[2]='\0';(字符串结束标志)
之后的 strcat则是把从c[1]开始的字符串"yz"从 a[] 的结束标志外开始连接,即a[2]='x';a[3]='y';a[4]='\0';
于是结果为a[]='a2yz'.
strcpy函数先是把从b[2]开始的字符2复制到从a[1]开始的字符串中,由于b[2] 之后就没有字符了,所以a[1]=b[2]='2'; a[2]='\0';(字符串结束标志)
之后的 strcat则是把从c[1]开始的字符串"yz"从 a[] 的结束标志外开始连接,即a[2]='x';a[3]='y';a[4]='\0';
于是结果为a[]='a2yz'.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原型声明:extern char *strcpy(char dest[],const char *src);
头文件:#include <string.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h>
在C++中,则存在于<cstring>头文件中。
功能
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
采纳我哦
头文件:#include <string.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h>
在C++中,则存在于<cstring>头文件中。
功能
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
采纳我哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询