📜  C |数组|问题7(1)

📅  最后修改于: 2023-12-03 14:59:38.606000             🧑  作者: Mango

C数组问题7:如何在C语言中将两个数组合并成一个新数组?

在C语言中,常常需要将两个数组合并成一个新数组。这个过程需要一定的算法和技巧,下面将详细介绍如何将两个数组合并成一个新数组。

解决方案

方案一: 使用循环来遍历数组,然后将元素放入新数组中。

int arr1[] = { 1, 2, 3 };
int arr2[] = { 4, 5, 6 };

int len1 = sizeof(arr1) / sizeof(int);
int len2 = sizeof(arr2) / sizeof(int);
int len3 = len1 + len2;

int arr3[len3];

for (int i = 0; i < len1; i++) {
    arr3[i] = arr1[i];
}

for (int i = 0; i < len2; i++) {
    arr3[i + len1] = arr2[i];
}

此方法通过使用两个循环来遍历两个数组,并将其元素复制到新数组中。新数组的长度应该等于两个数组的长度之和。

方案二: 使用指针和指针算术运算符。

int arr1[] = { 1, 2, 3 };
int arr2[] = { 4, 5, 6 };

int len1 = sizeof(arr1) / sizeof(int);
int len2 = sizeof(arr2) / sizeof(int);
int len3 = len1 + len2;

int arr3[len3];
int *p1 = arr1, *p2 = arr2, *p3 = arr3;

while (p1 != arr1 + len1) {
    *p3++ = *p1++;
}

while (p2 != arr2 + len2) {
    *p3++ = *p2++;
}

此方法使用三个指针分别指向数组的开头,通过指针算术运算来遍历两个数组,并将它们的元素复制到新数组中。

总结

无论使用哪种方法,合并两个数组的关键是要确保新数组的长度等于两个数组的长度之和,然后将两个数组的元素按照顺序复制到新数组中。在实际开发中,要根据实际情况选择合适的方法。