Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Stringstream ในการเขียนโปรแกรม C++

โจทย์

ตัวอย่างร่างนี้คำนวณจำนวนคำทั้งหมดในสตริงที่กำหนด וכן นับจำนวนครั้งที่คำเฉพาะเจาะจงเกิดขึ้น โดยใช้ stringstream ในโค้ด C++ คลาส stringstream ผูกออบเจกต์สตริงกับสตรีม ทำให้คุณอ่านจากสตริงได้เหมือนเป็นสตรีม โค้ดนี้จะทำสองอย่าง แรก นับจำนวนคำทั้งหมด แล้วคำนวณความถี่ของคำแต่ละคำในสตริงโดยใช้เมธอดสำคัญของ map iterator ดังนี้

ตัวอย่างโค้ด C++

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

ผลลัพธ์

เมื่อสตริง "Ajay Tutorial Plus, Ajay author" ถูกส่งให้โปรแกรมนี้ จำนวนรวมและความถี่ของคำในเอาต์พุตจะเป็นดังนี้

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