Write a C program (not C++) that will call a function that accepts three one dim
ID: 3842615 • Letter: W
Question
Write a C program (not C++) that will call a function that accepts three one dimensional arrays of characters (you decide on the size and the initial elements). The function should interleave the arrays and include an “*” in the resulting output. The resulting output should be placed into the third array.
The program should have a main function and a utility function called merge. The main function should prompt the user to enter two different strings (within reasonable length, no more than 50 character each). It should call the merge function that will interleave the first string and the second string and include an “*” to produce a third string. The merge stops with the shortest string. The main program should print out all the three strings after the function call as shown below.
Scenario 1
Enter string 1 : ABC
Enter string 2: 12345
Result after merge call
String 1 : ABC
String 2 : 12345
Merged string : A1*B2*C3*
Scenario 2
Enter string 1 : ABCDE
Enter string 2: 1234
Result after merge call
String 1 : ABCDE
String 2 : 1234
Merged string : A1*B2*C3*D4
Explanation / Answer
Ans.
#include <stdio.h>
#include <string.h>
void merge(char a[], char b[], char c[])
{
int l1 = strlen(a);
int l2 = strlen(b);
int i, j = 0, mini;
if (l1 < l2)
{
mini = l1;
}
else
{
mini = l2;
}
for (i = 0; i < mini; i++)
{
c[j++] = a[i];
c[j++] = '*';
c[j++] = b[i];
}
c[j] = '';
printf("%s ", c);
}
int main() {
// your code goes here
char a[50], b[50], finalString[155];
printf ("Enter string1: ");
scanf("%s", a);
printf ("Enter string2: ");
scanf("%s", b);
merge(a,b,finalString);
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.