stringstream class c usage examples
O clasă stringstream în C ++ este o clasă Stream pentru a opera pe șiruri. Clasa stringstream implementează operațiunile de intrare / ieșire pe fluxuri de baze de memorie, adică șir:
Clasa stringstream din C ++ permite ca un obiect șir să fie tratat ca un flux. Este folosit pentru a opera pe corzi. Prin tratarea șirurilor ca fluxuri, putem efectua operațiuni de extracție și inserare din / către șir la fel ca fluxurile cin și cout.
Aceste tipuri de operații sunt utile în cea mai mare parte pentru a converti șirul în tipuri de date numerice și invers. Clasa stringstream se dovedește, de asemenea, utilă în diferite tipuri de analiză.
=> Citiți seria Easy C ++ Training.
Ce veți învăța:
stringstream Class In C ++
O clasă stringstream poate fi reprezentată pictural după cum urmează:
Putem vedea unde clasa stringstream intră în imagine în diagrama ios. Această clasă este derivată din clasa iostream. Obiectele clasei stringstream folosesc un buffer de șiruri care conține o secvență de caractere. Acest buffer poate fi accesat direct ca obiect string.
Putem folosi membrul str al stringstream-ului în acest scop. Pentru a utiliza clasa stringstream în programul C ++, trebuie să folosim antetul .
De exemplu,codul pentru a extrage un întreg din șir ar fi:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Aici declarăm un obiect șir cu valoarea „2019” și un obiect int „myInt”. Apoi, folosim constructorul de clase stringstream pentru a construi un obiect stringstream din obiectul string. Apoi, folosind operatorul de extracție (>>), valoarea este extrasă în myInt. Din codul de mai sus, valoarea myInt va fi 2019.
Să explorăm diferitele operațiuni ale clasei stringstream.
Operațiuni de inserare și extracție folosind stringstream
Acum vom vedea cum să obținem date în stringstream sau operațiunea de inserare și cum să obținem date din stringstream, adică operația de extracție a clasei stringstream.
# 1) Operațiune de inserare
Pentru a obține datele într-un șir de caractere, putem folosi două metode.
(i) Utilizarea operatorului de inserare (<<)
oracle dba interviu întrebări și răspunsuri pentru experimentat
Având în vedere un obiect stringstream ss, putem atribui date bufferului ss după cum urmează folosind<< operator.
stringstream ss; ss<< “hello,world!!”;
Aceasta introduce „salut, lume !!” în stringstream ss.
(ii) Folosirea funcției str (string)
De asemenea, putem utiliza funcția str pentru a aloca date bufferului stringstream. Funcția str ia șirul de date ca argument și atribuie aceste date obiectului șir de caractere.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Operațiunea de extracție
Avem două metode pentru a scoate datele din stringstream sau pentru operația de extracție.
(i) Folosirea funcției str ()
Putem folosi funcția str () pentru a scoate datele din stringstream după cum urmează.
stringstream ss; ss<<”Hello,World”; cout< (ii) Utilizarea operatorului de extracție (>>)
Putem folosi operatorul de extracție pentru a afișa datele streamstream după cum urmează.
Stringstream ss; ss<>str;
Conform codului de mai sus, variabila str va avea valoarea obiectului ss ca urmare a acțiunii operatorului de extracție.
Dat mai jos este un program complet care demonstrează utilizarea operațiilor de inserare și extracție din clasa stringstream.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< Ieșire:
În programul de mai sus, am arătat mai întâi metodele de inserare, adică operatorul<< and str(string) function that reads the string into stringstream.
Apoi, am văzut funcționarea metodelor de extracție care sunt funcția str () care scoate datele din șirul de caractere și operator >>.
Rețineți că pentru operator >>, deoarece datele inițiale de flux de șiruri constau din spații albe în timp ce alocați datele unei variabile de șir, acestea vor fi citite doar până la primul spațiu alb. Prin urmare, pentru a converti întregul obiect șir de caractere în date șir, avem nevoie de fiecare o variabilă pentru a citi datele separate prin spații albe.
întrebări și răspunsuri la interviuri în baze de date pdf
Prin urmare, în programul de mai sus, avem nevoie de trei variabile de șir pentru a obține întregul obiect de date de tip șir.
Aplicații de stringstream în C ++
Putem găsi utilizările clasei stringstream în diferite aplicații.
Unele dintre aplicații au fost discutate mai jos pentru referință:
# 1) Conversia între șiruri și numere
Operatorii de inserție și extracție a șirului de fluxuri funcționează cu toate tipurile de bază de date. Prin urmare, le putem folosi pentru a converti șirurile în tipuri numerice și invers.
Programul complet de conversie între șiruri și numere este dat mai jos.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< Ieșire:
În primul rând, am convertit valorile numerice în valori șir. Apoi, convertim valorile șirurilor numerice în valori numerice.
# 2) Numărarea numărului de cuvinte într-un șir
Putem folosi clasa stringstream pentru a număra numărul de cuvinte dintr-un șir. Programul complet este prezentat mai jos.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
Ieșire:
Numărul de cuvinte din șirul dat este: 9
Pentru a număra numărul de cuvinte dintr-un șir dat, îl convertim mai întâi în obiectul șir de caractere. Apoi numărăm fiecare cuvânt folosind un operator de extracție (deoarece se oprește la fiecare spațiu alb) într-o buclă. În cele din urmă, imprimăm valoarea numărului total de cuvinte.
# 3) Imprimați frecvențele de cuvinte individuale într-un șir
Următoarea aplicație a stringstream în C ++ este de a imprima frecvențele diferitelor cuvinte într-un șir dat. Aceasta înseamnă că vom imprima de câte ori apare un anumit cuvânt în șirul dat.
Pentru aceasta, am menținut o structură de hartă care va avea o pereche cheie-valoare cu fiecare cuvânt din șir ca o cheie și valoarea sa corespunzătoare este frecvența acelui cuvânt.
Programul complet C ++ este prezentat mai jos.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout Ieșire:
cel mai bun software de clonare a hard diskului Windows 10
În acest program, fiecare cuvânt din șir este introdus pe hartă și apoi numărul sau frecvența fiecărui cuvânt este înregistrat ca valoare pentru cheia corespunzătoare din hartă. În acest fel vom scoate toate cuvintele șirului și frecvențele corespunzătoare.
Concluzie
Clasa Stringstream este utilizată pentru inserarea și extragerea datelor către / din obiectele șir. Acționează ca un flux pentru obiectul șir. Clasa stringstream este similară cu fluxurile cin și cout, cu excepția faptului că nu are un canal de intrare-ieșire.
Am discutat diverse operații ale clasei stringstream împreună cu câteva exemple de aplicații ale sale în programare.
În tutorialele noastre ulterioare, vom discuta în detaliu funcțiile bibliotecii limbajului C ++.
=> Căutați întreaga serie de formare C ++ aici.
Lectură recomandată
- Utilizarea cursorului în MongoDB cu exemple
- Utilizarea ObjectId () în MongoDB cu exemple
- Aflați cum să utilizați C # StringBuilder Class și metodele sale cu exemple
- Interfață Java și tutorial de clasă abstractă cu exemple
- Exemple de afirmare a seleniului - Aplicații practice în proiecte
- Document de interogare MongoDB folosind metoda Find () (Exemple)
- C # String Tutorial - Metode de șiruri cu exemple de coduri
- Explorează elementele esențiale ale Java în seleniu cu exemple