在C中,我有两个char数组:
char array1[18] = "abcdefg"; char array2[18]; 如何复制的价值array1来array2?我可以这样做array2 = array1吗? 问题来源于stack overflow
您无法直接执行操作array2 = array1,因为在这种情况下,您需要操纵数组(char *)而不是其内部值(char)的地址。
从概念上讲,您想要做的是遍历源代码(array1)的所有字符,然后将它们复制到目的地(array2)。有几种方法可以做到这一点。例如,您可以编写一个简单的for循环,或使用memcpy。
话虽这么说,推荐的字符串方式是使用strncpy。它可以防止常见错误,例如,导致缓冲区溢出(如果array1从用户输入(如键盘,网络等)填充缓冲区,这将特别危险)。像这样:
// Will copy 18 characters from array1 to array2 strncpy(array2, array1, 18);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。