Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Stringstream trong lập trình C++


Mẫu này tính tổng số từ trong chuỗi cho trước cũng như đếm tổng số lần xuất hiện của một từ cụ thể sử dụng stringstream trong mã C++. Lớp stringstream liên kết đối tượng chuỗi với một luồng, cho phép đọc từ chuỗi như thể nó là một luồng. Mã này thực hiện hai việc: đầu tiên đếm tổng số từ, sau đó tính tần suất các từ riêng lẻ trong chuỗi bằng phương thức iterator của map như sau:

Ví dụ mã 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 << "Tổng Số Từ=" << totalWords(s)<<endl;
    countFrequency(s);
    return 0;
}

Đầu ra

Khi chuỗi "Ajay Tutorial Plus, Ajay author" được cung cấp cho chương trình này, tổng số lượng và tần suất từ trong đầu ra như sau:

Tổng Số Từ=5
Ajay=2
Tutorial=1
Plus,=1
Author=1