#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 128
 
void reverse(char* begin, char* end)
{
    char temp;
    while (begin < end) {
        temp = *begin;
        *begin++ = *end;
        *end-- = temp;
    }
}
 
void reverseText(char* s)
{
    char* word_begin = s;
    char* temp = s;
 
    while (*temp) {
        temp++;
        if (*temp == '\0') {
            reverse(word_begin, temp - 1);
        }
        else if (*temp == ' ') {
            reverse(word_begin, temp - 1);
            word_begin = temp + 1;
        }
    }
 
    reverse(s, temp - 1);
}
 
int main(int argc, char *argv[])
{
    FILE *fp;

    if (NULL == (fp = fopen (argv[1], "r"))) {
        printf ("Error opening file\n");
        exit (1);
    }

    char s[MAX];
    fscanf(fp, "%[^\n]s", s);

    char* temp = s;
 
    reverseText(s);

    printf("%s", s);
    printf ("\n");

    fclose (fp);
    return 0;
}
