logo

stringstream C++ ir jos programose

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 ciklus

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; }>

>

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++