Styginių srautas susieja eilutės objektą su srautu, leidžiančiu skaityti iš eilutės taip, lyg tai būtų srautas (kaip cin). Norėdami naudoti stringstream, turime įtraukti upelis antraštės failą. Styginių srauto klasė yra labai naudinga analizuojant įvestį.
Pagrindiniai metodai yra šie:
2-1 multiplekseris
- clear()- Norėdami išvalyti srautą. str() – gauti ir nustatyti eilutės objektą, kurio turinys yra sraute. operatorius <<- Pridėkite eilutę prie stringstream objekto. operatorius>>- Skaitykite ką nors iš stringstream objekto.
Pavyzdžiai:
1. Suskaičiuokite žodžių skaičių eilutėje
Pavyzdžiai:
Įvestis: Asipu Pawan Kumar
Išvestis: 3Įvestis: Geeks Geeks Ide
Išvestis: 4
Žemiau yra C++ programa, skirta įgyvendinti aukščiau nurodytą metodą -
C++
tinklų tipai
// 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>> žodis)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }> |
>
>Išvestis
Number of words are: 6>
Laiko sudėtingumas: O(n*log(n)).
Pagalbinė erdvė: O(n).
2. Atspausdinkite atskirų žodžių dažnius eilutėje
Pavyzdžiai:
Įvestis: Geeks for Geeks Viktorina Geeks Viktorina praktikos praktika
Išvestis: Už -> 1
Geeks -> 3
Praktika -> 2
Viktorina -> 2Įvestis: Žodžių eilutės dažnio eilutė
Išvestis: Dažnis -> 1
Styga -> 2
Žodis -> 1
Žemiau yra C++ programa, skirta įgyvendinti aukščiau nurodytą metodą -
C++
haraldas baldras
// 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; // Naudojamas laužant žodžius stringstream ss(st); // Saugoti atskirus žodžius eilutė Word; while (ss>> Word) FW[Word]++; už (auto m : FW) cout<< m.first << '->'<< m.second << '
'; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }> |
>
>Išvestis
For->1 Geeks-> 2 Ide-> 1>>Laiko sudėtingumas: O(n*log(n)).
Pagalbinė erdvė: O(n).
3. Konvertuokite sveikąjį skaičių į eilutę
Kadangi eilučių srauto įterpimo ir ištraukimo operatoriai veikia su skirtingais duomenų tipais. Štai kodėl jis gerai veikia su sveikaisiais skaičiais.
Mes įterpsime sveikąjį skaičių į eilutės srautą ir ištraukę jį į eilutę, ta sveikojo skaičiaus reikšmė taps eilute.
Kodas-
java end for ciklusC++
// 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; }> |
>Išvestis
1234>
Laiko sudėtingumas: O(n) ,n yra sveikojo skaičiaus ilgis
Pagalbinė erdvė: O(n)
Tarpų pašalinimas iš eilutės naudojant Stringstream
Stygų konvertavimas į skaičius C/C++