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 }