Lets write a C program to concatenate or append two arrays into a third array. Make use of macros to assign size of the arrays.
Page Contents
Enter 5 integer numbers, for first array
0
1
2
3
4
Enter 5 integer numbers, for second array
5
6
7
8
9
Merging a[5] and b[5] to form c[10] ..
Elements of c[10] is ..
0
1
2
3
4
5
6
7
8
9
Method 1: Arrays with same size
#include<stdio.h> #define N 5 #define M (N * 2) int main() { int a[N], b[N], c[M], i, index = 0; printf("Enter %d integer numbers, for first array\n", N); for(i = 0; i < N; i++) scanf("%d", &a[i]); printf("Enter %d integer numbers, for second array\n", N); for(i = 0; i < N; i++) scanf("%d", &b[i]); printf("\nMerging a[%d] and b[%d] to form c[%d] ..\n", N, N, M); for(i = 0; i < N; i++) c[index++] = a[i]; for(i = 0; i < N; i++) c[index++] = b[i]; printf("\nElements of c[%d] is ..\n", M); for(i = 0; i < M; i++) printf("%d\n", c[i]); return 0; }
Output:
Enter 5 integer numbers, for first array
0
9
8
7
6
Enter 5 integer numbers, for second array
5
4
3
2
1
Merging a[5] and b[5] to form c[10] ..
Elements of c[10] is ..
0
9
8
7
6
5
4
3
2
1
Here size of array a and b are same, so the for loops are same to accept elements of array a and b. We initialize variable index to 0. We write a for loop and iterate from 0 to 4, and copy the individual elements of array a to array c. Here index of array a and c varies from 0 to 4.
In the second for loop again we iterate the for loop from 0 to 4. This time value of variable index varies from 5 to 9, where as value of index of variable b varies from 0 to 4. So the individual elements of array b are copied to array c from index 5 to 9.
Method 2: Arrays with different size
#include<stdio.h> #define N1 5 #define N2 6 #define M (N1 + N2) int main() { int a[N1], b[N2], c[M], i, index = 0; printf("Enter %d integer numbers, for first array\n", N1); for(i = 0; i < N1; i++) scanf("%d", &a[i]); printf("Enter %d integer numbers, for second array\n", N2); for(i = 0; i < N2; i++) scanf("%d", &b[i]); printf("\nMerging a[%d] and b[%d] to form c[%d] ..\n", N1, N2, M); for(i = 0; i < N1; i++) c[index++] = a[i]; for(i = 0; i < N2; i++) c[index++] = b[i]; printf("\nElements of c[%d] is ..\n", M); for(i = 0; i < M; i++) printf("%d\n", c[i]); return 0; }
Output:
Enter 5 integer numbers, for first array
0
1
2
3
4
Enter 6 integer numbers, for second array
5
6
7
8
9
10
Merging a[5] and b[6] to form c[11] ..
Elements of c[11] is ..
0
1
2
3
4
5
6
7
8
9
10
Here the logic to concatenate array elements is same, but only difference is the size of array variable a and b. So we need to be careful while writing conditions in for loop.
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert