Virknes straume saista virknes objektu ar straumi, kas ļauj nolasīt no virknes tā, it kā tā būtu straume (piemēram, cin). Lai izmantotu stringstream, mums ir jāiekļauj straume galvenes fails. Stringstream klase ir ļoti noderīga ievades parsēšanai.
Pamatmetodes ir:
- clear()- Lai notīrītu straumi. str()- lai iegūtu un iestatītu virknes objektu, kura saturs atrodas straumē. operators <<- Pievienojiet virkni stringstream objektam. operators>>- Lasiet kaut ko no stringstream objekta.
Piemēri:
1. Saskaitiet vārdu skaitu virknē
Piemēri:
Ievade: Asipu Pavans Kumars
Izvade: 3Ievade: Geeks For Geeks Ide
Izvade: 4
Zemāk ir C++ programma, lai īstenotu iepriekš minēto pieeju-
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>> vārds)> > count++;> > return> count;> }> // Driver code> int> main()> {> > string s => 'geeks for geeks geeks '> > 'contribution placements'> ;> > cout <<> ' Number of words are: '> << countWords(s);> > return> 0;> }> |
>
>Izvade
Number of words are: 6>
Laika sarežģītība: O(n*log(n)).
Palīgtelpa: O(n).
2. Drukājiet virknē atsevišķu vārdu frekvences
Piemēri:
Ievade: Geeks For Geeks Quiz Geeks Viktorīnas prakses prakse
Izvade: Priekš -> 1
Geeks -> 3
Prakse -> 2
Viktorīna -> 2Ievade: Vārdu virknes frekvences virkne
Izvade: Frekvence -> 1
Virkne —> 2
Vārds -> 1
Zemāk ir C++ programma, lai īstenotu iepriekš minēto pieeju-
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; // Izmanto vārdu sadalīšanai stringstream ss(st); // Lai saglabātu atsevišķu vārdu virkni Word; while (ss>> Word) FW[Word]++; priekš (auto m : FW) cout<< m.first << '->'<< m.second << '
'; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }> |
>
>Izvade
For->1 Geeks-> 2 Ide-> 1>>Laika sarežģītība: O(n*log(n)).
Palīgtelpa: O(n).
3. Konvertējiet veselu skaitli par virkni
Kopš tā laika virkņu straumes ievietošanas un ekstrakcijas operatori strādā ar dažādiem datu tipiem. Tāpēc tas labi darbojas ar veseliem skaitļiem.
Mēs ievietosim veselu skaitli virknes straumē, un pēc tā izvilkšanas virknē šī veselā skaitļa vērtība kļūs par virkni.
Kods-
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; }> |
salīdziniet java virknes
>Izvade
1234>
Laika sarežģītība: O(n) ,n ir vesela skaitļa garums
Palīgtelpa: O(n)
Atstarpju noņemšana no virknes, izmantojot Stringstream
Virkņu pārvēršana skaitļos programmā C/C++