Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a \"C\" program that will call a function that accepts three one dimension

ID: 3606984 • Letter: W

Question

Write a "C" program 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.

Write a program that has 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

#include<stdio.h>
#include<string.h>

char* merge(char* string1, char* string2, char* resultString){
char asterisk = '*';
int i = 0;
int j = 0;
int resultArrSize = 0;
  
//To check which of the strings is having smaller size
//size_t is an unsigned data type, used to represent the size of an object.
size_t len1 = strlen(string1);
size_t len2 = strlen(string2);
  
if(len1 > len2)
{
resultArrSize = len2;
}
else if(len1 < len2)
{
resultArrSize = len1;
}
else
{
resultArrSize = len1;
}
  
//Use this format to print size_t value -- printf("%lu",len);
  
//Actual logic to merge the strings & the asterisk
while(i < resultArrSize)
{
  
resultString[j] = string1[i];
resultString[j+1] = string2[i];
if((i+1) < resultArrSize)
{
resultString[j+2] = asterisk; //merge * to resultString
j = j + 3;
}
else
{
resultString[j+2] = ''; //to terminate the resultString & avoid garbage value
}
  
i++;
  
}
  
return resultString;
}

int main(){
char string1[50];
char string2[50];
char resultString[150];
  
printf("Enter string 1 : ");
scanf("%s",string1);
printf("Enter string 2 : ");
scanf("%s",string2);
  
char* mergeResultString = merge(string1, string2, resultString);
  
printf(" Result after merge call");
printf(" %s %s %s",string1, string2, mergeResultString);
  
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote