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