logo

stringstream i C++ och dess applikationer

En strängström associerar ett strängobjekt med en ström så att du kan läsa från strängen som om det vore en ström (som cin). För att använda stringstream måste vi inkludera sstream header-fil. Stringstream-klassen är extremt användbar för att analysera indata.

Grundläggande metoder är:



    clear()- För att rensa strömmen. str()- För att hämta och ställa in strängobjekt vars innehåll finns i strömmen. operator <<- Lägg till en sträng till stringstream-objektet. operator>>- Läs något från stringstream-objektet.

Exempel:

1. Räkna antalet ord i en sträng

Exempel:



Inmatning: Asipu Pawan Kumar
Produktion: 3

Inmatning: Nördar för nördar Ide
Produktion: 4

Nedan är C++-programmet för att implementera ovanstående tillvägagångssätt-



C++


arraylist sorterad



// C++ program to count words in> // a string using stringstream.> #include> #include> #include> using> namespace> std;> int> countWords(string str)> {> >// Breaking input into word> >// using string stream> > >// Used for breaking words> >stringstream s(str);> > >// To store individual words> >string word;> >int> count = 0;> >while> (s>> word)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }>

>

>

Produktion

java är lika
 Number of words are: 6>

Tidskomplexitet: O(n*log(n)).

Extra utrymme: På).

2. Skriv ut frekvenser för enskilda ord i en sträng

Exempel:

Inmatning: Geeks For Geeks Quiz Geeks Quiz Practice Practice
Produktion: För -> 1
Nördar -> 3
Öva -> 2
Frågesport -> 2

Inmatning: Ordsträngsfrekvenssträng
Produktion: Frekvens -> 1
Sträng -> 2
Ord -> 1

Nedan är C++-programmet för att implementera ovanstående tillvägagångssätt-

inkscape vs gimp

C++




// C++ program to demonstrate use> // of stringstream to count> // frequencies of words.> #include> using> namespace> std;> void> printFrequency(string st)> {> >// Each word it mapped to> >// it's frequency> >mapint>FW; // Används för att bryta ord stringstream ss(st); // För att lagra enskilda ord sträng Word; while (ss>> Word) FW[Word]++; för (auto m : FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Produktion

java-instans av
For->1 Nördar-> 2 Ide-> 1>

Tidskomplexitet: O(n*log(n)).

Extra utrymme: På).

3. Konvertera heltal till sträng

Sedan fungerar insättnings- och extraktionsoperatorerna för strängström med olika datatyper. Så det är därför det fungerar bra med heltal.

Vi kommer att infoga ett heltal i strängströmmen och efter att ha extraherat det i en sträng kommer det heltalsvärdet att bli en sträng.

Koda-

C++


funktioner i c



// C++ program to demonstrate the> // use of a stringstream to> // convert int to string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >int> val=123;> >// object from the class stringstream> >stringstream geek;> >// inserting integer val in geek stream> >geek << val;> >// The object has the value 123> >// and stream it to the string x> >string x;> >geek>> x;> >// Now the string x holds the> >// value 123> >cout<'4'< return 0; }>

>

>

Produktion

1234>

Tidskomplexitet: O(n) ,n är längden på heltal

Hjälputrymme: O(n)

Ta bort mellanslag från en sträng med Stringstream
Konvertera strängar till tal i C/C++