开发者社区 问答 正文

如何在C中复制char数组?

在C中,我有两个char数组:

char array1[18] = "abcdefg"; char array2[18]; 如何复制的价值array1来array2?我可以这样做array2 = array1吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 22:06:03 526 分享 版权
1 条回答
写回答
取消 提交回答
  • 您无法直接执行操作array2 = array1,因为在这种情况下,您需要操纵数组(char *)而不是其内部值(char)的地址。

    从概念上讲,您想要做的是遍历源代码(array1)的所有字符,然后将它们复制到目的地(array2)。有几种方法可以做到这一点。例如,您可以编写一个简单的for循环,或使用memcpy。

    话虽这么说,推荐的字符串方式是使用strncpy。它可以防止常见错误,例如,导致缓冲区溢出(如果array1从用户输入(如键盘,网络等)填充缓冲区,这将特别危险)。像这样:

    // Will copy 18 characters from array1 to array2 strncpy(array2, array1, 18);

    2020-02-08 22:06:20
    赞同 展开评论
问答标签:
问答地址: