C++文字列ストリームstringstreamと文字列の知識の解説と使い方のまとめ
標準のC++ライブラリで提供されるstringstreamクラスは文字列の入出力を簡単に行うことができる。このクラスはstringクラスを利用しており、sstreamオブジェクトにデータを書き込んだ後でそのデータを読み出すことができる。
stringstreamを使用する手順は次のとおりです。
- 空のstringstreamオブジェクトを作成するには、デフォルトコンストラクタを使用するか初期文字列を指定して初期値付きstringstreamオブジェクトを作成できます。
std::stringstream ss; // 创建一个空的stringstream对象
std::stringstream ss("Hello, World!"); // 创建一个带有初始值的stringstream对象
- stringstreamオブジェクトにデータの書き込み:さまざまなタイプのデータをstringstreamオブジェクトに書き込むには、挿入演算子(<<)を使用できます。
int num = 10;
std::string str = "Hello";
ss << num << " " << str; // 将整数和字符串写入stringstream对象
- ストリームストリングからデータを読み取るには、抽出演算子 (>>) を使用して、ストリームストリングからさまざまなデータ型を読み取ることができます。
int num;
std::string str;
ss >> num >> str; // 从stringstream对象中读取整数和字符串
- stringstreamオブジェクトを文字列にする:str()メンバ関数を使って、stringstreamオブジェクトを文字列型のオブジェクトに変換できます。
std::string result = ss.str(); // 将stringstream对象转换为string对象
- stringstreamオブジェクトをクリアするには、clear()メンバ関数を使用できます。
ss.clear(); // 清空stringstream对象
要約すると、stringstream は文字列の入出力を簡単に実行でき、さまざまなデータ型をstringstream オブジェクトに書き込むことも、stringstream オブジェクトからさまざまなデータ型を読み取ることもできます。さらに、stringstream オブジェクトを文字列タイプのオブジェクトに変換できます。また、stringstream は既存のデータをクリアし、次回の使用に備えることもできます。
stringstreamはstringクラスをベースに実装されているので、stringクラスの操作(文字列の長さ取得、部分文字列の抽出など)が使用できます。