給定一句英語(yǔ),要求你編寫(xiě)程序,將句中所有單詞的順序顛倒輸出。
輸入格式:
測(cè)試輸入包含一個(gè)測(cè)試用例,在一行內(nèi)給出總長(zhǎng)度不超過(guò)80的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫(xiě)有區(qū)分)組成的字符串,單詞之間用1個(gè)空格分開(kāi),輸入保證句子末尾沒(méi)有多余的空格。
輸出格式:
每個(gè)測(cè)試用例的輸出占一行,輸出倒序后的句子。
#include <iostream>
using namespace std;
int main()
{
string sentence;
int start,end;
while (getline(cin,sentence)) //輸入包含空格的一句話
{
end=sentence.length();//一個(gè)單詞結(jié)束位置的后面一個(gè)空格
start=end-1;//一個(gè)單詞開(kāi)始位置
while(start!=-1){ //循環(huán)什么時(shí)候停止
//start!=0是考慮到只有一個(gè)單詞,前面不會(huì)有空格,會(huì)無(wú)限循環(huán)下去
for (start=end-1;sentence[start]!=' '&&start!=0;start--)
{
}
if(start==0){start=-1;}
for (int i=start+1;i<end;i++)
{
cout<<sentence[i]; //輸出單詞
}
//cout<<"start"<<start;
end=start;
if(start!=-1)cout<<" ";//輸出單詞后的空格
}
}
return 0;
}
//Scanner in = new Scanner(System.in);
//String[] temp = in.nextLine().split(" ");
//發(fā)現(xiàn)Java有很簡(jiǎn)單的字符串處理方法
注意事項(xiàng)
1.start,end初始化位置,前后端特殊點(diǎn)位置要考慮
2.Java有很簡(jiǎn)單的字符串處理方法
3.逆向輸出,可以用棧。。。。
int main() {
stack v;
string s;
while(cin >> s) {
v.push(s); }
cout << v.top();
v.pop();
while(!v.empty()) {
cout << " " << v.top();
v.pop(); }
return 0; }
//喵喵喵~我不管,誰(shuí)也不許偷偷復(fù)制本寶寶的博客^^~傲嬌地附上原文鏈接: 1009. 說(shuō)反話 (20)-PAT乙級(jí)真題 [http://www.liuchuo.net/archives/524](http://www.liuchuo.net/archives/524)