4-15:翻转单词顺序

问题:翻转单词顺序

翻转单词顺序,但单词中字母顺序保持不变。


void reverseword(char* begin, char* end)
{
	if (begin != NULL && end != NULL)
	{
		while (begin < end)
		{
			char temp = *begin;
			*begin = *end;
			*end = temp;
			begin++;
			end--;
		}
	}
	else
		return ;
}
char* reversesentence(char* begin)
{
	if (begin == NULL)
		return NULL;
	char* end = begin;
	while (*end != '\0')
		end++;
	end--;

	reverseword(begin, end);
	end = begin;
	char* result = begin;
	while (*begin != '\0')
	{
		if (*end == '\0' || *end == ' ')
		{
			reverseword(begin, end - 1);
			begin = end;
			end++;
		}
		else if (*begin == ' ')
		{
			begin++;
			end++;
		}
		else
		{
			end++;
		}
	}
	return result;
}
void test1()
{
	char sentence[] = "hello world";
	cout << reversesentence(sentence) << endl;
}
void test2()
{
	char sentence[] = "world";
	cout << reversesentence(sentence) << endl;
}
void test3()
{
	char sentence[] = "   ";
	cout << reversesentence(sentence) << endl;
}

Category technology