7-32 说反话-加强版

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:
Hello World Here I Come

输出样例:
Come I Here World Hello

#include
int main()
{
	char str1[500001], str2[500001], tempstr;//str2容量为测试点4需要
	int len1 = 0;
	while ((tempstr = getchar()) != '\n')
	{
		if (len1 == 0 && tempstr == ' ' || str1[len1 - 1] == ' ' && tempstr == ' ')
		{
			;
		}
		else {
			str1[len1] = tempstr;
			len1++;
		}
	}
	while (len1 != 0)
	{
		int i = len1 - 1, k = 0;
		if (str1[i] == ' ')
		{
			i--;
		}
		for (; str1[i] != ' '&&i>-1; i--)
		{
			str2[k++] = str1[i];
		}
		if (str1[i] == ' ')
		{
			i--;
		}
		for (int n = k - 1; n >= 0; n--)
		{
			printf("%c", str2[n]);
		}
		len1 = i + 1;
		if (len1 != 0)
		{
			printf(" ");
		}
	}
	return 0;
}

你可能感兴趣的:(PTA)