努力早睡的小柒 发表于 2021-11-18 08:28:55

strcpy函数

char a="abcdef";
char b="ABC";
strcpy(a,b);
想知道b是覆盖a中的前四个元素,还是清空a中的元素,再复制到a中。答案显示a为f,但是输出数组a又是ABC。

jhq999 发表于 2021-11-18 08:44:58

strcpy(a,b);\\后a[]={A,B,C,'\0',e,f,'\0'};
'\0'是字符串结束标志

jackz007 发表于 2021-11-18 08:48:04

      此操作把 b 的 4 个字符覆盖到了 a,也就是说,a 中的 "abcd"被 b 覆盖,但是 "ef" 还在,a 被覆盖后,前三个字符自然是 "ABC",a = '\0',a = 'e',a = 'f',其中,'\0'是字符串结束标志,所以,打印 a 的时候,会只显示 "ABC" 而不会显示后面的 "ef"。

tomok 发表于 2021-11-18 14:00:11

来看看答案

页: [1]
查看完整版本: strcpy函数