แบบร่างตัวอย่างนี้จะคำนวณจำนวนคำทั้งหมดในสตริงที่กำหนด รวมทั้งนับจำนวนการเกิดขึ้นทั้งหมดของคำเฉพาะโดยใช้สตริงสตรีมในโค้ดโปรแกรม C++ คลาส stringstream ร่วมมือกับอ็อบเจ็กต์สตริงกับสตรีม ซึ่งทำให้คุณสามารถอ่านจากสตริงได้เหมือนกับว่าเป็นสตรีม รหัสนี้จะบรรลุผลสำเร็จสองอย่าง ขั้นแรก จะนับจำนวนคำทั้งหมด จากนั้นคำนวณความถี่ของแต่ละคำในสตริงโดยใช้วิธีการที่สำคัญของ mapiterator ดังนี้
ตัวอย่าง
#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 ” ให้กับโปรแกรมนี้ จำนวนรวมและความถี่ของคำในผลลัพธ์ดังนี้
Enter a Total Number of Words=5 Ajay=2 Tutorial=1 Plus,=1 Author=1