英語の文を考えると、文のすべての単語を逆の順序で出力するプログラムを書く必要があります。
入力フォーマット:
テスト入力にはテストケースが含まれ、1行で全長が80以下の文字列を提供します。文字列は、複数の単語とスペースで構成されます。このうち、単語は英字で構成されます(大文字と小文字が区別されます)。単語は1つのスペースで区切られます。文の最後に余分なスペースがないことを確認するために入力します。
出力フォーマット:
各テストケースの出力は1行を占め、逆順の文が出力されます。
入力例:
Hello World Here I Come
出力例:
Come I Here World Hello
アイデア
この質問は非常に単純です。ベクター<string>を使用して各文字列を格納し、逆の順序で出力します。各文字列を取得する方法については、最初にすべての入力行を読み取って文字列tmpに格納し、次に文字列tmpの各ビットを処理します。スペースでない場合は、現在の文字列を処理します。 tempを受け取った後、スペースに遭遇した場合は、tempをベクターコンテナーに入れ、tempを空にして、次の直列接続の準備をします。最後の桁が読み取られた場合、最後の桁をオンにして、ベクトルに入れます。詳細はコードを見てください〜
コード
#include<cstdio>
#include<string>
#include<vector>
#include<iostream>
using namespace std;
vector<string> s;
int main(){
string tmp;//存储输入的字符串
getline(cin, tmp);
string temp;//存储暂时的字符串
for(int i=0;i<tmp.size();i++){
if(tmp[i]==' '){
s.push_back(temp);
temp.clear();
continue;
}
else if(i==tmp.size()-1){
temp += tmp[i];
s.push_back(temp);
temp.clear();
break;
}
temp += tmp[i];
}
for(int i=s.size()-1;i>=0;i--){
if(i==s.size()-1) cout<<s[i];
else cout<<" "<<s[i];
}
}