stringstream class c usage examples
C ++のstringstreamクラスは、文字列を操作するためのStreamクラスです。 stringstreamクラスは、メモリベースストリームでの入出力操作を実装します。つまり、string:
C ++のstringstreamクラスを使用すると、文字列オブジェクトをストリームとして扱うことができます。文字列を操作するために使用されます。文字列をストリームとして扱うことで、cinやcoutストリームと同じように、文字列との間で抽出および挿入操作を実行できます。
これらのタイプの操作は、文字列を数値データ型に、またはその逆に変換する場合に最も役立ちます。 stringstreamクラスは、さまざまなタイプの解析にも役立つことが証明されています。
=> Easy C ++トレーニングシリーズをお読みください。
学習内容:
C ++のstringstreamクラス
stringstreamクラスは、次のように図で表すことができます。
stringstreamクラスがiOS図のどこにあるかを確認できます。このクラスは、iostreamクラスから派生しています。 stringstreamクラスのオブジェクトは、文字のシーケンスを含む文字列バッファを使用します。このバッファには、文字列オブジェクトとして直接アクセスできます。
この目的のために、stringstreamのstrメンバーを使用できます。 C ++プログラムでstringstreamクラスを使用するには、ヘッダーを使用する必要があります 。
例えば、文字列から整数を抽出するコードは次のようになります。
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
ここでは、値が「2019」の文字列オブジェクトとintオブジェクトが「myInt」であると宣言します。次に、stringstreamクラスコンストラクターを使用して、stringオブジェクトからstringstreamオブジェクトを構築します。次に、抽出演算子(>>)を使用して、値がmyIntに抽出されます。上記のコードから、myIntの値は2019になります。
stringstreamクラスのさまざまな操作を調べてみましょう。
stringstreamを使用した挿入および抽出操作
次に、文字列ストリームまたは挿入操作にデータを取得する方法と、文字列ストリームからデータを取得する方法、つまり文字列ストリームクラスの抽出操作について説明します。
#1)挿入操作
データを文字列ストリームに取り込むために、2つの方法を使用できます。
(i)挿入演算子の使用(<<)
モノのインターネットアプリケーションの例
stringstreamオブジェクトssが与えられると、次のようにssバッファにデータを割り当てることができます。<< operator.
stringstream ss; ss<< “hello,world!!”;
これは「hello、world !!」を挿入しますstringstreamssに。
(ii)str(string)関数の使用
str関数を使用して、データを文字列ストリームバッファに割り当てることもできます。 str関数は、データ文字列を引数として受け取り、このデータをstringstreamオブジェクトに割り当てます。
stringstream ss; ss.str(“Hello,World!!”);
#2)抽出操作
stringstreamからデータを取得する方法と、抽出操作を行う方法は2つあります。
(i)str()関数の使用
.jarファイルを開くにはどうすればよいですか
次のように、str()関数を使用して、stringstreamからデータを取得できます。
stringstream ss; ss<<”Hello,World”; cout< (ii)抽出演算子の使用(>>)
抽出演算子を使用して、次のように文字列ストリームデータを表示できます。
Stringstream ss; ss<>str;
上記のコードに従って、変数strは、抽出演算子アクションの結果としてssオブジェクトの値を持ちます。
以下に示すのは、stringstreamクラスの挿入および抽出操作の使用法を示す完全なプログラムです。
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< 出力:

上記のプログラムでは、最初に挿入方法、つまり演算子を示しました。<< and str(string) function that reads the string into stringstream.
次に、文字列ストリームと演算子>>からデータを取得するstr()関数である抽出メソッドの動作を確認しました。
演算子>>の場合、最初の文字列ストリームデータは、データを文字列変数に割り当てている間は空白で構成されているため、最初の空白までしか読み取られないことに注意してください。したがって、stringstreamオブジェクト全体を文字列データに変換するには、空白で区切られたデータを読み取るために、それぞれ1つの変数が必要です。
したがって、上記のプログラムでは、stringstreamオブジェクトデータ全体を取得するために3つの文字列変数が必要です。
C ++でのstringstreamのアプリケーション
stringstreamクラスの使用法はさまざまなアプリケーションで見つけることができます。
参考までに、いくつかのアプリケーションについて以下で説明します。
#1)文字列と数値の間の変換
stringstreamの挿入演算子と抽出演算子は、すべての基本的なタイプのデータで機能します。したがって、それらを使用して文字列を数値型に、またはその逆に変換できます。
文字列と数値を変換するための完全なプログラムを以下に示します。
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< 出力:

まず、数値を文字列値に変換しました。次に、数値の文字列値を数値に変換します。
#2)文字列内の単語数を数える
stringstreamクラスを使用して、文字列内の単語数をカウントできます。完全なプログラムを以下に示します。
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
出力:
指定された文字列の単語数は次のとおりです:9
特定の文字列内の単語数をカウントするには、最初にそれをstringstreamオブジェクトに変換します。次に、ループ内で抽出演算子(各空白で停止するため)を使用して各単語をカウントします。最後に、単語の総数の値を出力します。
#3)個々の単語の頻度を文字列に出力する
C ++でのstringstreamの次のアプリケーションは、特定の文字列内のさまざまな単語の頻度を出力することです。これは、特定の単語が特定の文字列に何回出現するかを印刷することを意味します。
このために、文字列内の各単語をキーとして持つキーと値のペアを持つマップ構造を維持しました。対応する値は、その特定の単語の頻度です。
職場での困難な状況への対処
完全なC ++プログラムを以下に示します。
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout 出力:

このプログラムでは、文字列内の各単語がマップに入力され、各単語の数または頻度がマップ内の対応するキーの値として記録されます。このようにして、文字列のすべての単語とそれに対応する頻度を出力します。
結論
Stringstreamクラスは、文字列オブジェクトとの間のデータの挿入と抽出に使用されます。文字列オブジェクトのストリームとして機能します。 stringstreamクラスは、入出力チャネルがないことを除いて、cinおよびcoutストリームに似ています。
stringstreamクラスのさまざまな操作について、プログラミングにおけるそのアプリケーションのいくつかの例とともに説明しました。
以降のチュートリアルでは、C ++言語のライブラリ関数について詳しく説明します。
=> ここでC ++トレーニングシリーズ全体を探してください。
推奨読書