What is Stringstream Class in C++?
stringstream is a part of the C++ Standard Library, included in the sstream header, and is used for performing input and output operations on strings. It allows you to treat a string like a stream (such as cin or cout), enabling formatted input and output operations.
Commonly Used Methods of Stringstream Class in C++
- clear() :- To clear the stream.
- str() :- To get and set string object whose content is present in the stream.
- operator << :- Add a string to the stringstream object.
- operator >> :- Read something from the stringstream object.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
// Create a stringstream object
stringstream ss;
// Using operator<< to add data to the stringstream
ss << "123 456 789";
// Output the current content of the stringstream using str()
cout << "Initial stringstream content: " << ss.str() << endl;
// Variables to hold extracted values
int a, b, c;
// Using operator>> to extract data from the stringstream
ss >> a >> b >> c;
// Display the extracted values
cout << "Extracted values: " << a << " " << b << " " << c << endl;
// Clear the stringstream using clear()
ss.clear();
// Check the content after clearing (should be empty)
cout << "After clear() - current stringstream content: " << ss.str() << endl;
// Set a new string to the stringstream using str()
ss.str("987 654 321");
// Output the new content of the stringstream
cout << "After str() set new content: " << ss.str() << endl;
// Extract data from the stringstream again
ss >> a >> b >> c;
// Display the newly extracted values
cout << "Newly extracted values: " << a << " " << b << " " << c << endl;
// Clear the stringstream and reset the stringstream content
ss.clear();
ss.str("");
// Verify that the stringstream is cleared
cout << "Final stringstream content after clear and str reset: '" << ss.str() << "'" << endl;
return 0;
}
n
represents the size of the string content in the stream, and m
represents the size of the data being inserted or extracted.
// C++ program to demonstrate use of stringstream to count frequencies of words.
#include <bits/stdc++.h>
using namespace std;
void printFrequency(string st)
{
// Each word it mapped to it's frequency
map<string, int> FW;
// Used for breaking words
stringstream ss(st);
// To store individual words
string Word;
while (ss >> Word)
FW[Word]++;
for (auto m : FW)
cout << m.first << "-> " << m.second << "\n";
}
int main()
{
string s = "May the force be with you";
printFrequency(s);
return 0;
}
Top comments (0)