开发者社区> 问答> 正文

如何在C中复制char数组?

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

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

展开
收起
保持可爱mmm 2020-02-08 22:06:03 485 0
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
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载