当前位置:首页 > 行业动态 > 正文

c语言怎么合并两个数组内容

在C语言中,合并两个数组可以通过多种方法实现,以下是一些常见的方法:

1、使用循环遍历数组元素并逐个复制到新数组中,这种方法适用于两个数组具有相同的大小。

2、使用memcpy函数直接将一个数组的内容复制到另一个数组中,这种方法适用于两个数组具有相同的大小。

3、使用动态内存分配创建一个新的数组,其大小为两个原始数组的大小之和,使用循环遍历原始数组并将元素复制到新数组中,这种方法适用于两个数组具有不同的大小。

下面分别介绍这三种方法的实现过程。

方法一:使用循环遍历数组元素并逐个复制到新数组中

#include <stdio.h>
#include <stdlib.h>
int main() {
    int arr1[] = {1, 2, 3};
    int arr2[] = {4, 5, 6};
    int n = sizeof(arr1) / sizeof(arr1[0]);
    int m = sizeof(arr2) / sizeof(arr2[0]);
    int *arr3 = (int *)malloc((n + m) * sizeof(int));
    for (int i = 0; i < n; i++) {
        arr3[i] = arr1[i];
    }
    for (int i = 0; i < m; i++) {
        arr3[i + n] = arr2[i];
    }
    for (int i = 0; i < n + m; i++) {
        printf("%d ", arr3[i]);
    }
    free(arr3);
    return 0;
}

方法二:使用memcpy函数直接将一个数组的内容复制到另一个数组中

#include <stdio.h>
#include <string.h>
int main() {
    int arr1[] = {1, 2, 3};
    int arr2[] = {4, 5, 6};
    int n = sizeof(arr1) / sizeof(arr1[0]);
    int m = sizeof(arr2) / sizeof(arr2[0]);
    int *arr3 = (int *)malloc((n + m) * sizeof(int));
    memcpy(arr3, arr1, n * sizeof(int));
    memcpy(arr3 + n, arr2, m * sizeof(int));
    for (int i = 0; i < n + m; i++) {
        printf("%d ", arr3[i]);
    }
    free(arr3);
    return 0;
}

方法三:使用动态内存分配创建一个新的数组,其大小为两个原始数组的大小之和,使用循环遍历原始数组并将元素复制到新数组中,这种方法适用于两个数组具有不同的大小。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    int n1 = 3;
    int n2 = 4;
    int *arr1 = (int *)malloc(n1 * sizeof(int));
    int *arr2 = (int *)malloc(n2 * sizeof(int));
    int *arr3 = (int *)malloc((n1 + n2) * sizeof(int));
    for (int i = 0; i < n1; i++) {
        arr1[i] = i + 1;
    }
    for (int i = 0; i < n2; i++) {
        arr2[i] = i + 4;
    }
    for (int i = 0; i < n1; i++) {
        arr3[i] = arr1[i];
    }
    for (int i = 0; i < n2; i++) {
        arr3[i + n1] = arr2[i];
    }
    for (int i = 0; i < n1 + n2; i++) {
        printf("%d ", arr3[i]);
    }
    free(arr1);
    free(arr2);
    free(arr3);
    return 0;
}

以上三种方法都可以实现C语言中两个数组的合并,在实际编程过程中,可以根据具体需求选择合适的方法。

0