#include <stdio.h>

#define MAX_STRING 20

void CharSwap(char *firstVal, char *secondVal);
void Reverse(char string[MAX_STRING]);

main()
{
  char input[MAX_STRING];    /* Input string, read from the keyboard  */
  
  printf("Input a word (less than 20 characters) :");
  scanf("%s", input);

  Reverse(input);

  printf("The word reversed is %s.\n", input);
}

void CharSwap(char *firstVal, char *secondVal)
{
  char tempVal;             /* Needed to hold firstVal when swapping  */
  
  tempVal = *firstVal;
  *firstVal = *secondVal;
  *secondVal = tempVal;
}

void Reverse(char string[MAX_STRING])
{
  int index;
  int length = 0;

  /* Calculate the string length */
  while ((string[length] != '\0') && (length < MAX_STRING))  
    length++;
  
  /* Reverse it! */
  for (index = 0; index < (length / 2); index++) 
    CharSwap(&string[index], &string[length - (index + 1)]);
}