istringstreamの使用
3978 ワード
C++は、ostringstream、istringstream、stringstreamの3つのクラスを導入しています.これらのクラスを使用してオブジェクトを作成するには、次の#includeを含む必要があります. istringstreamクラスは、C++スタイルのシリアルストリームの入力操作を実行するために使用されます. ostringstreamクラスは、Cスタイルのシリアルストリームの出力動作を実行するために使用される. strstrstreamクラスは、Cスタイルのシリアルストリームの入出力操作を同時にサポートします.
istringstreamの構造関数は次のとおりです.
サンプル・プログラム:
英語の文を入力して、文の中の単語の順序を反転しますが、単語内の文字の順序は変わりません.簡単にするために、句読点は普通のアルファベットと同じように処理されます.例えば、入力文字列「I am a student.」は、「student.a am I」を出力する.
考え方:この文字列のすべての単語を分割してスタックに入れ、スタックを出て文字列に再接続します.では、ポイントはどうやって中の単語を分割しますか?
istringstreamの構造関数は次のとおりです.
istringstream::istringstream(string str);
サンプル・プログラム:
英語の文を入力して、文の中の単語の順序を反転しますが、単語内の文字の順序は変わりません.簡単にするために、句読点は普通のアルファベットと同じように処理されます.例えば、入力文字列「I am a student.」は、「student.a am I」を出力する.
考え方:この文字列のすべての単語を分割してスタックに入れ、スタックを出て文字列に再接続します.では、ポイントはどうやって中の単語を分割しますか?
class Solution {
public:
string reverseWords(string s) {
string ans, str;
stack<string> strs;
istringstream ss(s);
while(ss >> str) {
strs.push(str);
}
int firstword = 1;
while(!strs.empty()) {
if(!firstword)
ans += " ";
ans += strs.top();
strs.pop();
firstword = 0;
}
return ans;
}
};