What does the fowlloing program do show the result for some

What does the fowlloing program do? show the result for some sample input
#include <stdio.h>
void mystery1 (char*, const char*);
int main() {
char string1[80], string2[80];
printf(\"Enter two strings:\");
scanf(\"%s %s\", string1, string2);
mystery1(string1,string2);
printf(\"%s\ \", string1);
}
void mystery1(char*s1, const char *s2){
while(*s1 != \'\\0\')
++s1;
for(; *s1 = *s2; s1++; s2++); /*empty statement*/
}

Solution

Here is the code explained in comments:

#include <stdio.h>
void mystery1 (char*, const char*);   //Declares a function mystery1, which takes 2 character pointers as input, and returns nothing.
int main() {
char string1[80], string2[80];   //Declares 2 strings, string1, and string2.
printf(\"Enter two strings:\");   //Prompts the user to enter 2 strings.
scanf(\"%s %s\", string1, string2);   //Reads 2 strings into variables string1, and string2.
mystery1(string1,string2);       //Calls the function mystery1, with the parameters string1, and string2.
printf(\"%s\ \", string1);       //Prints the string string1.
}
void mystery1(char*s1, const char *s2){  
while(*s1 != \'\\0\')       //Till you reach the end of first string.
++s1;                   //Move forward.
//There is an error with this code.
//Multiple increments should be separated by commas, and not semicolons.
//After modification, this is how it looks like.
for(; *s1 = *s2; s1++, s2++); /*empty statement*/
//This loop will copy the string s2 (appends s2 to s1), to the end of string s1.
}

And the code in main() reads 2 strings, and passes to the function mystery1(), which appends the second string to the first string.

What does the fowlloing program do? show the result for some sample input #include <stdio.h> void mystery1 (char*, const char*); int main() { char string1

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site