C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラミングのStringstream


このサンプルドラフトは、特定の文字列内の単語の総数を計算し、C++プログラミングコードでstringstreamを使用して特定の単語の合計出現回数をカウントします。 stringstreamクラスは、文字列オブジェクトをストリームと組み合わせて、文字列をストリームであるかのように閲覧できるようにします。このコードは2つの偉業を達成するものとします。最初に、単語の総数をカウントし、次に次のようにマピテレーターの基本的な方法を使用して、文字列内の個々の単語の頻度を計算します。

#include <bits/stdc++.h>
using namespace std;
int totalWords(string str){
   stringstream s(str);
   string word;
   int count = 0;
   while (s >> word)
      count++;
   return count;
}
void countFrequency(string st){
   map<string, int> FW;
   stringstream ss(st);
   string Word;
   while (ss >> Word)
      FW[Word]++;
   map<string, int>::iterator m;
   for (m = FW.begin(); m != FW.end(); m++)
      cout << m->first << " = " << m->second << "\n";
}
int main(){
   string s = "Ajay Tutorial Plus, Ajay author";
   cout << "Total Number of Words=" << totalWords(s)<<endl;
   countFrequency(s);
   return 0;
}
出力 文字列「AjayTutorialPlus、Ajay作者 」がこのプログラムに提供され、出力される単語の総数と頻度は次のようになります。

Enter a Total Number of Words=5
Ajay=2
Tutorial=1
Plus,=1
Author=1

  1. C++での文字列のトークン化

    このセクションでは、C++で文字列をトークン化する方法を説明します。 Cでは、文字配列にstrtok()関数を使用できます。ここに文字列クラスがあります。次に、その文字列から区切り文字を使用して文字列を切り取る方法を説明します。 C ++機能を使用するには、文字列を文字列ストリームに変換する必要があります。次に、getline()関数を使用して、タスクを実行できます。 getline()関数は、文字列ストリーム、出力を送信するための別の文字列、およびストリームのスキャンを停止するための区切り文字を受け取ります。 関数がどのように機能しているかを理解するために、次の例を見てみましょう。 サン

  2. C ++で文字列をトークン化しますか?

    最初の方法は、文字列ストリームを使用して、スペースで区切られた単語を読み取ることです。これは少し制限されていますが、適切なチェックを提供すれば、タスクはかなりうまくいきます。 例 #include <vector> #include <string> #include <sstream> using namespace std; int main() {    string str("Hello from the dark side");    string tmp; // A string