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
}