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;
}
