1009. 說反話 (20)
時間限制
400 ms
內存限制
32000 kB
代碼長度限制
8000 B
判題程序
Standard
作者
CHEN, Yue
給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。
輸入格式:測試輸入包含一個測試用例,在一行內給出總長度不超過80的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用1個空格分開,輸入保證句子末尾沒有多余的空格。
輸出格式:每個測試用例的輸出占一行,輸出倒序后的句子。
輸入樣例:Hello World Here I Come輸出樣例:
Come I Here World Hello
/* http://pat.zju.edu.cn/contests/pat-b-practise/1009 */ #include<iostream> #include<string.h> #include<vector> using namespace std; int main() { vector<string> v; string str; getline(cin,str); string tmp=""; for(int i=0;i<str.length();i++) { if(str[i]=='\n') break; if(str[i]!=' ') tmp += str[i]; else { v.push_back(tmp); tmp=""; } } v.push_back(tmp); for(int i=v.size()-1;i>=0;i--) { if(i!=0) cout<<v[i]<<" "; else cout<<v[i]; } system("pause"); return 0; }
//方法二,用strtok函數切分 #include<iostream> #include<string.h> #include<vector> using namespace std; int main() { char str[80]; const char *ch = " "; char *result; vector<char *> v; gets(str);//注意用的是gets()可以連帶空格都掃描進去 result = strtok(str,ch); while(result!=NULL) { v.push_back(result); result = strtok(NULL,ch); } for(int i=v.size()-1;i>=0;i--) { if(i!=0) cout<<v[i]<<" "; else cout<<v[i]; } system("pause"); return 0; }