用strcpy函数时,如果前面的数组被赋予了初值,那么复制过去的字符串是整体覆盖吗

高手,请问下,用strcpy函数时,如果前面的数组被赋予了初值,那么复制过去的字符串是整体覆盖吗
最新回答
咸鱼味的猫

2025-03-02 02:52:42

是的,整体覆盖。请看如下

测试用例

#include <

stdio.h
>

#include <

string.h
>


int main()

{

  char s1[20] = "abcde";

  char s2[] = "12345";


  strcpy(s1, s2);

  printf("s1:%s\n", s1);

  return 0;

}

结果

红颜ヽ祸水-

2025-03-02 08:49:41

是部分覆盖,覆盖源字符串的长度+1
为你衣冠

2025-03-02 06:50:29

你输出%s他遇到‘\0’就不输出了,所以你看不到后面其实还有