logo

stringstream C++:ssa ja sen sovelluksissa

Merkkijonovirta yhdistää merkkijonoobjektin virtaan, jolloin voit lukea merkkijonosta ikään kuin se olisi virta (kuten cin). Jotta voisimme käyttää stringstreamia, meidän on sisällytettävä virtaa otsikkotiedosto. Stringstream-luokka on erittäin hyödyllinen syötteen jäsentämisessä.

Perusmenetelmät ovat:



    clear()- Tyhjentääksesi virran. str()- Hakea ja asettaa merkkijonoobjektin, jonka sisältö on virrassa. operaattori <<- Lisää merkkijono merkkijono-objektiin. operaattori>>- Lue jotain merkkijono-objektista.

Esimerkkejä:

1. Laske merkkijonon sanojen määrä

Esimerkkejä:



Syöte: Asipu Pawan Kumar
Lähtö: 3

Syöte: Geeks For Geeks Ide
Lähtö: 4

Alla on C++-ohjelma yllä olevan lähestymistavan toteuttamiseksi -



C++




// 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>> sana)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }>

merkkijonoarvo

>

>

Lähtö

 Number of words are: 6>

Aika monimutkaisuus: O(n*log(n)).

Aputila: Päällä).

2. Tulosta yksittäisten sanojen taajuudet merkkijonoon

Esimerkkejä:

Syöte: Geeks for Geeks -visa Geeks -tietokilpailu -harjoittelu
Lähtö: -> 1
Nörtti -> 3
Harjoittelu -> 2
Tietovisa -> 2

Syöte: Sanamerkkijonotaajuusmerkkijono
Lähtö: Taajuus -> 1
merkkijono -> 2
Sana -> 1

Alla on C++-ohjelma yllä olevan lähestymistavan toteuttamiseksi -

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; // Käytetään sanojen rikkomiseen stringstream ss(st); // Tallentaa yksittäisiä sanoja merkkijono Word; while (ss>> Word) FW[Word]++; varten (auto m : FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Lähtö

For->1 nörtti-> 2 idea-> 1>> 

Aika monimutkaisuus: O(n*log(n)).

Aputila: Päällä).

3. Muunna kokonaisluku merkkijonoksi

Siitä lähtien merkkijonovirran lisäys- ja purkuoperaattorit toimivat eri tietotyypeillä. Siksi se toimii hyvin kokonaislukujen kanssa.

Lisäämme kokonaisluvun merkkijonovirtaan ja sen jälkeen, kun se on purettu merkkijonoon, tästä kokonaisluvusta tulee merkkijono.

Koodi-

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

>

Lähtö

1234>

Aika monimutkaisuus: O(n) ,n on kokonaisluvun pituus

Aputila: O(n)

Välilyöntien poistaminen merkkijonosta Stringstreamin avulla
Merkkijonojen muuntaminen numeroiksi C/C++:ssa