stringstream class c usage examples
Klasa stringstream u C ++ je klasa Stream za rad na žicama. Klasa stringstream implementira ulazno / izlazne operacije na memorijskim bazama, tj. String:
Klasa stringstream u C ++ omogućuje da se objekt niza tretira kao stream. Koristi se za rad na žicama. Tretirajući žice kao tokove možemo izvršiti operaciju ekstrakcije i umetanja iz / u niz baš kao i cin i cout potoci.
Ove su vrste operacija uglavnom korisne za pretvaranje niza u numeričke tipove podataka i obrnuto. Klasa stringstream također se pokazuje korisnom u različitim vrstama raščlanjivanja.
=> Pročitajte seriju Easy C ++ Training Series.
Što ćete naučiti:
stringstream klasa u C ++
Klasa niz struna može se slikovito predstaviti na sljedeći način:
Na ios dijagramu možemo vidjeti gdje klasa stringstream dolazi na sliku. Ova je klasa izvedena iz klase iostream. Objekti klase stringstream koriste me uspremnik niza koji sadrži niz znakova. Ovom se međuspremniku može pristupiti izravno kao objekt niza.
U tu svrhu možemo koristiti član str niza. Da bismo koristili klasu stringstream u programu C ++, moramo koristiti zaglavlje .
Na primjer,kôd za izdvajanje cijelog broja iz niza bio bi:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Ovdje deklariramo niz objekt s vrijednošću '2019' i int objekt 'myInt'. Dalje, konstruktor klase stringstream koristimo za konstrukciju stringstream objekta od string objekta. Zatim se pomoću operatora ekstrakcije (>>) vrijednost ekstrahira u myInt. Iz gornjeg koda, vrijednost myInt bit će 2019.
Istražimo razne operacije klase stringstream.
Operacije umetanja i izvlačenja pomoću stringstream-a
Sada ćemo vidjeti kako doći do podataka u stringstream ili operaciju umetanja i kako izvući podatke iz stringstream-a, tj. Operaciju ekstrakcije klase stringstream.
# 1) Operacija umetanja
Da bismo podatke dobili u nizu niza, možemo se poslužiti dvijema metodama.
(i) Korištenje operatora umetanja (<<)
kako započeti java projekt u eclipseu
S obzirom na stringstream objekt ss, možemo dodijeliti podatke ss međuspremniku na sljedeći način pomoću<< operator.
stringstream ss; ss<< “hello,world!!”;
Ovo ubacuje 'zdravo, svijet !!' u niz struja ss.
(ii) Korištenje funkcije str (string)
Također možemo koristiti funkciju str za dodjeljivanje podataka me uspremniku stringstream. Funkcija str uzima niz podataka kao argument i dodjeljuje te podatke objektu stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Operacija ekstrakcije
Imamo dvije metode za izvlačenje podataka iz strujnog niza ili za operaciju ekstrakcije.
(i) Korištenje funkcije str ()
Možemo koristiti funkciju str () da izvučemo podatke iz niza nizova kako slijedi.
stringstream ss; ss<<”Hello,World”; cout< (ii) Korištenje operatora ekstrakcije (>>)
Operator ekstrakcije možemo koristiti za prikaz niza podataka na sljedeći način.
Stringstream ss; ss<>str;
Prema gornjem kodu, varijabla str imat će vrijednost ss objekta kao rezultat akcije ekstrakcije operatora.
Dolje je dan cjelovit program koji prikazuje upotrebu operacija umetanja i izvlačenja klase stringstream.
otvaranje eps datoteke u sustavu Windows
#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< Izlaz:

U gornjem programu pokazali smo prvo metode umetanja, tj. Operator<< and str(string) function that reads the string into stringstream.
Dalje, vidjeli smo kako rade metode ekstrakcije koje su funkcija str () koja izvlači podatke iz niza niza i operatora >>.
Imajte na umu da će se za operator >>, budući da se početni podaci niza podataka sastoje od razmaka tijekom dodjeljivanja podataka varijabli niza, čitati samo do prvog razmaka. Stoga da bismo pretvorili cijeli objekt stringstream u niz podataka, trebamo po jednu varijablu za čitanje podataka odvojenih razmakom.
Dakle, u gore navedenom programu trebamo tri varijable niza da bismo dobili cijele podatke o objektima niza niza.
Primjene stringstream-a u C ++
Možemo pronaći upotrebu klase stringstream u raznim aplikacijama.
U nastavku su za vašu referencu razmatrane neke od aplikacija:
# 1) Pretvorba između nizova i brojeva
Operatori umetanja i izvlačenja stringstream-a rade sa svim osnovnim vrstama podataka. Stoga ih možemo koristiti za pretvaranje nizova u numeričke tipove i obrnuto.
Kompletni program za pretvorbu između nizova i brojeva dan je u nastavku.
#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:'< Izlaz:
je java povezani popis dvostruko povezan

Prvo smo pretvorili numeričke vrijednosti u niz vrijednosti. Dalje, pretvaramo numeričke vrijednosti niza u numeričke vrijednosti.
# 2) Brojanje broja riječi u nizu
Klasu stringstream možemo koristiti za brojanje broja riječi u nizu. Kompletni program dan je u nastavku.
#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; }
Izlaz:
Broj riječi u zadanom nizu je: 9
Da bismo prebrojali broj riječi u danom nizu, prvo ga pretvaramo u objekt niza nizova. Zatim svaku riječ računamo pomoću operatora ekstrakcije (jer se zaustavlja na svakom razmaku) u petlju. Na kraju ispisujemo vrijednost ukupnog broja riječi.
# 3) Ispišite pojedinačne frekvencije riječi u nizu
Sljedeća primjena stringstream-a u C ++-u je ispis frekvencija različitih riječi u danom nizu. To znači da ćemo ispisati koliko se puta određena riječ pojavljuje u zadanom nizu.
Zbog toga smo održali strukturu mape koja će imati par ključ / vrijednost sa svakom riječi u nizu kao ključem, a njena odgovarajuća vrijednost je učestalost te određene riječi.
Kompletni program C ++ prikazan je u nastavku.
#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 Izlaz:

U ovom se programu svaka riječ u nizu unosi na kartu, a zatim se bilježi broj ili učestalost svake riječi kao vrijednost za odgovarajući ključ na karti. Na taj način izbacujemo sve riječi niza i njihove odgovarajuće frekvencije.
Zaključak
Klasa Stringstream koristi se za umetanje i izdvajanje podataka u / iz objekata niza. Djeluje kao tok za objekt niza. Klasa stringstream slična je cin i cout streamovima, osim što nema ulazno-izlazni kanal.
Razgovarali smo o raznim operacijama klase stringstream zajedno s nekoliko primjera njenih primjena u programiranju.
U našim slijedećim vodičima detaljno ćemo razmotriti knjižnične funkcije jezika C ++.
=> Ovdje potražite cijelu seriju treninga za C ++.
Preporučena literatura
- Primjena pokazivača u MongoDB-u s primjerima
- Korištenje ObjectId () u MongoDB s primjerima
- Naučite koristiti C # StringBuilder klasu i njene metode s primjerima
- Java sučelje i udžbenik klase sažetak sa primjerima
- Primjeri utvrđivanja selena - praktična primjena u projektima
- MongoDB dokument upita pomoću metode Find () (primjeri)
- Vodič za niz stringa C # - Nizne metode s primjerima koda
- Istražite osnove Jave u selenu sa primjerima