Question & Answer: C PROGRAM Write a program, changename.c, which takes a filename as input and produces a filename with a different extension as output. Most filena…..

C PROGRAM Write a program, changename.c, which takes a filename as input and produces a filename with a different extension as output. Most filenames consist of two parts, the basename (everything to the left of the last ’.’ character), and the extension (everything to the right of the last ’.’ character). Often, we wish to name our output files something similar to our input files, and changing the extension is a convenient way to do this. For example, if the input file is called “myprog.in”, then an appropriate output file name would be “myprog.out”. Write your program to first read a string (with no spaces in it) from the keyboard. This is the input filename (although we are not actually going to be reading from it). The program then creates an output string which is a a copy of the input string except that everything after the last ’.’ character is replaced with the extension ”out”. The input string and the output string are written to a file having the output filename. The output file should look like: input name is my.program.in output name is my.program.out

Expert Answer

 

NOTE: I have completed the code as per instructions mentioned in the question. Please check and let us know if you see any issues. I will revert back within 24 hours.

Code:

#include <stdio.h>

#include <string.h>

int main()

{

char fname[50], newfname[50];

int i, j;

FILE *fp;

/* Asking user to enter the filename as input */

printf(“nEnter the filename: “);

scanf(“%s”, fname);

/* getting the index of last ‘.’ character */

for(i = strlen(fname); fname[i] != ‘.’ && i > 0; i–);

/* transferring the filename until last ‘.’ character which is basename */

for(j = 0; j < i; j++)

newfname[j] = fname[j];

newfname[j] = ‘’;

/* Adding ‘.out’ extension to the old file basename */

strcat(newfname, “.out”);

printf(“Input filename is %s and output filename is %s”, fname, newfname);

fp = fopen(newfname, “w”);

fprintf(fp, “Input filename is %s and output filename is %s”, fname, newfname);

fclose(fp);

printf(“n”);

}

Code output screenshot:

https://pasteboard.co/GF1MgPo.png

Still stressed from student homework?
Get quality assistance from academic writers!