PAT (Basic Level) Practise (中文)- 1009. 说反话 (20)

http://www.patest.cn/contests/pat-b-practise/1009

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

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

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     char str[100];
 6     gets(str);
 7     int iStart=0,iLen=0,len=strlen(str);
 8     
 9     int iStr=0;
10     char temp='0';
11     
12     for(int i=0,j=len-1;i<j;i++,j--)
13     {
14             temp=str[i];
15             str[i]=str[j];
16             str[j]=temp;
17     }
18     iStr=0;        
19     while(str[iStr])
20     {
21         if(str[iStr]==' ')
22         {
23             if(iLen>0)
24                 for(int i=iStart,j=iStart+iLen-1;i<j;i++,j--)
25                 {
26                     temp=str[i];
27                     str[i]=str[j];
28                     str[j]=temp;
29                 }
30             iStart=iStr+1;
31             iLen=0;
32         }
33         else
34             iLen++;
35             
36         iStr++;
37     }
38             if(iLen>0)
39                 for(int i=iStart,j=iStart+iLen-1;i<j;i++,j--)
40                 {
41                     temp=str[i];
42                     str[i]=str[j];
43                     str[j]=temp;
44                 }
45                 puts(str);
46     return 0;
47 }
原文地址:https://www.cnblogs.com/asinlzm/p/4463777.html