I am trying to solve a C Program problem:
Create a program in C that reads a string from a text file and then reorders the string in an odd-even format (first take odd numbered letters and then even numbered letters; example: if the program reads elephant, then the reordered string will be eehnlpat). Then write the string in a different text file. Provide an error-checking mechanism for both reading and writing.
My code is:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    FILE *inputFile;
    inputFile = fopen("inpFile.txt", "r");
    if (inputFile != NULL) {
        FILE *outFile = fopen("outFile.txt", "w");
        if (outFile != NULL) {
            printf("file created successfully\n");
            int i, j = 0;
            char strf1[50];
            fscanf(inputFile, "%s", &strf1);
            char strf2[strlen(strf1)];
            for (i = 0; strf1[i] > 0; i++) {
                if (i % 2 == 0) {
                    strf2[j] = strf1[i];
                    j++;
                }
            }
            for (i = 1; strf1[i] > 0; i++) {
                if (i % 2 == 1) {
                    strf2[j] = strf1[i];
                    j++;
                }
            }
            fprintf(outFile, "%s\n", strf2);
            fclose(outFile);
        } else {
            printf("file could not be created\n");
        }
        fclose(inputFile);
    } else {
        printf("File does not exist.");
    }
    return 0;
}
I feel all is OK but the problem is if the program reads elephant, then the reordered string given by my program is eehnlpatZ0@. Where extra Z0@ is my problem. I don't want that extra thing. But I can't fix it. If anybody can help me to fix it, that will be great.
 
     
     
    