istringstreamの使用

3978 ワード

C++は、ostringstream、istringstream、stringstreamの3つのクラスを導入しています.これらのクラスを使用してオブジェクトを作成するには、次の#includeを含む必要があります.
  • istringstreamクラスは、C++スタイルのシリアルストリームの入力操作を実行するために使用されます.
  • ostringstreamクラスは、Cスタイルのシリアルストリームの出力動作を実行するために使用される.
  • strstrstreamクラスは、Cスタイルのシリアルストリームの入出力操作を同時にサポートします.

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