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ö: 3Syö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 -> 2Syö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