7-32 说反话-加强版 (20分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello / 思路:首先找出字符串开头的位置(有可能开头有空格),然后从字符串的尾部开始遍历字符串,当第一次遇到一个空格(可能会遇到两个连续的空格),则输出从这个空格到上一个空格中间的字符串 / 实现代码如下: # include <stdio.h> # include <string.h> int main ( ) { char s [ 500000 ] ; int i , j , k , cot = 0 ; scanf ( "%[^\n]" , & s ) ; int len = strlen ( s ) ; for ( i = 0 ; i < len ; i ++ ) if ( s [ i ] != ' ' ) { k = i ; break ; //找到开头的位置后停止遍历 } for ( i = len - 1 ; i > k