00问答网
所有问题
char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b)
. 若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是?为什么a遇到\0不会结束,a5还是f?
举报该问题
推荐答案 2020-05-03
若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是'f'。
因为执行strcpy(a,b);时,a数组中被覆盖的元素有4个,即'A','B','C','\0',所以,a[4]仍是'e',a[5]仍是'f'。
但是,输出printf("%s",a);的值,是ABC
除非,输出printf("%s",a+5);的值,是ef
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/nnBIeDTnnenBDrBjeeT.html
其他回答
第1个回答 2020-05-04
a是一个字符数组,拷贝过程只改变了a[0]到a[3],对后面的数无影响。
相似回答
...
a[7]=
“
abcdef
”
, b[4]=
“
ABC
”;
strcpy(a,b);
则a[5]的值是...
答:
strcpy(a,b),
即把b[]嵌入到a[]中,覆盖原a[]的相应数值,a[]现在是{A,B,C,d,e,f}那么a[5]的值应该为f。若有以下定义和语句:
char
a[7]=
“
abcdef
”,
b[4]=
“
ABC
”;
strcpy(a,b);
则a[5]的值是'f'。因为执行strcpy(a,b);时,a数组中被覆盖的元素有4个,zhuan即'A'...
以下程序段的输出结果是___.(注:ㄩ表示空格
)
char
a[7]=
"
abcdef
...
答:
答案是字符e
,strcpy(a,b);
意思是将字符串b拷贝到字符串a中,b的总共长度才4(字符串结尾都会有一个结束字符’\0‘),所以拷贝替换的只是a的前4个字符,第五个字符以后的字符并没有变。printf(“%c”
,a[4]
);是输出字符串a中的第五个字符,由于第五个字符没有被替换,还是原来的字符e ...
char
a[7]=
"
abcdef
" char
b[4]=
"
ABC
"
strcpy(a,b)
printf("%c",a...
答:
strcpy(a,b);
后,数组a中存放着:"
ABC
\0ef\0"
,a[4],a[
5]的值并没有改变,即a[5]中存放的还是'f'。
...char
a[7]=
"
abcdef
"
;char
b[4]=
"
ABC
"
;strcpy(a,b);
printf("%c",a...
答:
是f,这个函数是把数组b中的元素拷贝到a数组中,由于遇到结束字符就结束了
,a
所以数组中的前三个字母被b数组代替了,但是后面三个不会变,在这有可能误认为输出是e,是因为忽略了a数组下表是从0开始的,所以a[5]是指第六个数,也就是f ...
大家正在搜
char a='a'
char a='\72'
char s[10]
c语言char ch
c语言char ch是什么意思
int a[3][4]
int a[2][3]
abc def
abcdef各代表012345
相关问题
char a[7]="abcdef" char b[4]="...
程序段 char a[7]="abcdef";char b[...
若有以下定义和语句: char a[7]= “abcdef”...
. 若有以下定义和语句: char a[7]= “abcde...
定义char a[7]= "abcdef"; char b[...
#include<iostream.h> void main...
{char a[7]"abedef";char b[4]"A...
以下程序段的输出结果是_____.(注:ㄩ表示空格) cha...