/*
* rev_str.c
* This program reads a sequence of strings,
terminated by "." and reverses
* each string.
*/
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 80
/* Prototypes:
*/
void reverse_str (char str[]);
int main ()
{
char str[MAX_LENGTH + 1];
while
(1)
{
/* Read the input
string. */
printf ("Please enter a string (or \".\" to stop):
");
scanf ("%s", str);
if
(strcmp (str, ".") == 0)
break;
/* Reverse the
string and print the result. */
reverse_str (str);
printf ("%s\n", str);
}
return
(0);
}
/*
------------------------------------------------------------------------
* Function: reverse_str
* Purpose : Reverse a
string.
* In/Out : str - A string (NULL terminated).
* This variable will eventually
contain the reversed string.
* Returns : Nothing.
*/
void reverse_str (char str[])
{
char temp;
int i, j;
/* Let i run from
the first character forward, and let j run from the last
character
backward, until the two indices meet. */
for
(i = 0, j = strlen(str) - 1;
i < j;
i++, j--)
{
/* Swap the i'th
and j'th characters. */
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
return;
}