void ReverseString(char str[], int start, int end)
{
char tmp;
//exchange characters and move ptr to middle
while(start < end)
{
tmp = str[end];
str[end --] = str[start];
str[start ++] = tmp;
}
}
void ReverseWords(char str[])
{
int slen = 0;
int start = 0;
int end = 0;
slen = strlen(str);
//reverse entire string
ReverseString(str, start, slen - 1);
start = end = slen - 1;
while(start >= 0)
{
//find a non-word character or the beginning of the string
if(str[start] == ' ' || start == 0 )
{
slen = start;
if(start != 0)
++ start;
//reverse a word
ReverseString(str, start, end);
//move ptr to next word
start = end = slen - 1;
}
else
{
-- start;
}
}//while
}