stringstream class c usage examples
Trieda stringstream v C ++ je trieda toku, ktorá funguje na reťazcoch. Trieda stringstream Implementuje operácie vstupu / výstupu v prúdoch pamäťových základní, tj. Reťazec:
Trieda stringstream v C ++ umožňuje, aby sa s objektom reťazca zaobchádzalo ako s prúdom. Používa sa na ovládanie strún. Ak považujeme reťazce za prúdy, môžeme vykonávať operácie extrakcie a vkladania z / do reťazca rovnako ako prúdy cin a cout.
Tieto typy operácií sú väčšinou užitočné na prevod reťazcov na číselné dátové typy a naopak. Trieda stringstream sa tiež osvedčila pri rôznych druhoch syntaktickej analýzy.
=> Prečítajte si sériu školení Easy C ++.
Čo sa dozviete:
stringstream Trieda v C ++
Triedu stringstream môžeme znázorniť obrázkovo nasledovne:
Na ios diagrame vidíme, kam sa trieda stringstream dostane na obrázok. Táto trieda je odvodená od triedy iostream. Objekty triedy stringstream používajú reťazcovú medzipamäť obsahujúcu postupnosť znakov. K tejto vyrovnávacej pamäti je možné pristupovať priamo ako k objektu reťazca.
Na tento účel môžeme použiť str člena reťazcového prúdu. Aby sme mohli použiť triedu stringstream v programe C ++, musíme použiť hlavičku .
Napríklad,kód na extrahovanie celého čísla z reťazca by bol:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Tu deklarujeme reťazcový objekt s hodnotou „2019“ a int objekt „myInt“. Ďalej použijeme konštruktor triedy stringstream na zostrojenie objektu stringstream z objektu string. Potom pomocou operátora extrakcie (>>) sa hodnota extrahuje do myInt. Z vyššie uvedeného kódu bude hodnota myInt 2019.
Pozrime sa na rôzne operácie triedy stringstream.
Operácie vkladania a extrakcie pomocou reťazcového toku
Teraz uvidíme, ako dostať dáta do stringstream alebo operácie vkladania a ako dostať dáta z stringstream, t. J. Extrakčnej operácie triedy stringstream.
# 1) Operácia vloženia
Aby sme mohli dostať dáta do reťazca, môžeme použiť dve metódy.
(i) Používanie operátora vkladania (<<)
najlepší softvér na obnovu zmazaných súborov
Vzhľadom na objekt sstream typu stringstream môžeme priradiť dáta do vyrovnávacej pamäte ss nasledujúcim spôsobom pomocou znaku<< operator.
stringstream ss; ss<< “hello,world!!”;
Toto vkladá slová „ahoj, svet !!“ do reťazca ss.
(ii) Použitie funkcie str (reťazec)
Na priradenie údajov do medzipamäte stringstream môžeme tiež použiť funkciu str. Funkcia str vezme dátový reťazec ako argument a tieto údaje priradí objektu stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Extrakčná operácia
Máme dve metódy, ako dostať dáta z reťazca alebo na extrakciu.
(i) Používanie funkcie str ()
Pomocou funkcie str () môžeme dáta dostať z reťazcového toku nasledovne.
stringstream ss; ss<<”Hello,World”; cout< (ii) Používanie operátora extrakcie (>>)
Extrakčný operátor môžeme použiť na zobrazenie údajov reťazcového toku nasledujúcim spôsobom.
Stringstream ss; ss<>str;
Podľa vyššie uvedeného kódu bude mať premenná str hodnotu objektu ss ako výsledok akcie operátora extrakcie.
Ďalej je uvedený kompletný program, ktorý demonštruje použitie operácií vkladania a extrakcie triedy 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< Výkon:

Vo vyššie uvedenom programe sme si najskôr ukázali spôsoby vkladania, teda operátor<< and str(string) function that reads the string into stringstream.
Ďalej sme videli fungovanie extrakčných metód, ktorými sú funkcia str (), ktorá získava údaje z reťazca a operátora >>.
Upozorňujeme, že pre operátor >>, pretože počiatočné údaje reťazcového toku pozostávajú z medzier, zatiaľ čo sú údaje priradené k premennej reťazca, bude čítať iba do prvého bieleho priestoru. Preto na prevedenie celého objektu stringstream na dáta reťazca potrebujeme každú jednu premennú na čítanie údajov oddelených bielymi znakmi.
Ako otvorím súbor JSON?
Vo vyššie uvedenom programe teda potrebujeme tri reťazcové premenné, aby sme získali všetky údaje objektu stringstream.
Aplikácie stringstream v C ++
Nájdeme použitie triedy stringstream v rôznych aplikáciách.
Niektoré aplikácie sú uvedené nižšie pre vašu informáciu:
# 1) Konverzia medzi reťazcami a číslami
Operátory vkladania a extrakcie reťazcového toku pracujú so všetkými základnými typmi údajov. Preto ich môžeme použiť na prevod reťazcov na číselné typy a naopak.
Kompletný program na prevod medzi reťazcami a číslami je uvedený nižšie.
#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:'< Výkon:

Najskôr sme previedli číselné hodnoty na reťazcové hodnoty. Ďalej prevádzame hodnoty číselného reťazca na číselné hodnoty.
# 2) Počítanie počtu slov v reťazci
Na spočítanie počtu slov v reťazci môžeme použiť triedu stringstream. Celý program je uvedený nižšie.
#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; }
Výkon:
Počet slov v danom reťazci je: 9
Aby sme spočítali počet slov v danom reťazci, najskôr ho prevedieme na objekt stringstream. Potom spočítame každé slovo pomocou operátora extrakcie (zastaví sa na každom medzere) v slučke. Na záver vytlačíme hodnotu z celkového počtu slov.
# 3) Tlačte jednotlivé frekvencie slov do reťazca
Ďalšou aplikáciou stringstream v C ++ je tlač frekvencií rôznych slov v danom reťazci. To znamená, že vytlačíme, koľkokrát sa konkrétne slovo v danom reťazci objaví.
Z tohto dôvodu sme zachovali štruktúru mapy, ktorá bude mať pár kľúč - hodnota s každým slovom v reťazci ako kľúčom a jeho zodpovedajúcou hodnotou je frekvencia daného slova.
Kompletný program C ++ je uvedený nižšie.
#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 Výkon:
falošný e-mail a heslo, ktoré funguje

V tomto programe sa každé slovo v reťazci zadá do mapy a potom sa počet alebo frekvencia každého slova zaznamená ako hodnota pre príslušný kláves na mape. Týmto spôsobom vydáme všetky slová reťazca a ich zodpovedajúce frekvencie.
Záver
Trieda Stringstream sa používa na vkladanie a extrakciu údajov do / z reťazcových objektov. Funguje ako prúd pre objekt reťazca. Trieda stringstream je podobná prúdom cin a cout okrem toho, že nemá vstupno-výstupný kanál.
Diskutovali sme o rôznych operáciách triedy stringstream spolu s niekoľkými príkladmi jej aplikácií v programovaní.
V našich ďalších tutoriáloch si podrobne rozoberieme knižničné funkcie jazyka C ++.
=> Celú sériu školení pre C ++ nájdete tu.
Odporúčané čítanie
- Používanie kurzora v MongoDB s príkladmi
- Použitie ObjectId () v MongoDB s príkladmi
- Naučte sa používať triedu C # StringBuilder a jej metódy s príkladmi
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- Príklady uplatnenia selénu - praktické aplikácie v projektoch
- Dokument dopytu MongoDB pomocou metódy Find () (príklady)
- C # String Tutorial - Metódy reťazcov s príkladmi kódu
- Preskúmajte základy Java v seléne pomocou príkladov