stringstream class c usage examples
Třída stringstream v C ++ je třída proudu, která funguje na řetězcích. Třída stringstream Implementuje operace vstupu / výstupu na proudech paměťových základen, tj. Řetězec:
Třída stringstream v C ++ umožňuje považovat objekt řetězce za stream. Používá se k ovládání řetězců. Zpracováním řetězců jako proudů můžeme provádět operace extrakce a vložení z / do řetězce stejně jako proudy cin a cout.
Tyto typy operací jsou většinou užitečné pro převod řetězce na číselné datové typy a naopak. Třída stringstream se také osvědčila při různých typech analýzy.
=> Přečtěte si sérii školení Easy C ++.
Co se naučíte:
stringstream Třída v C ++
Třídu stringstream lze znázornit obrázkově takto:
V diagramu ios můžeme vidět, kde třída stringstream přichází do obrázku. Tato třída je odvozena od třídy iostream. Objekty třídy stringstream používají řetězcovou vyrovnávací paměť obsahující posloupnost znaků. K této vyrovnávací paměti lze přistupovat přímo jako objekt řetězce.
K tomuto účelu můžeme použít str člena řetězce stringstream. Chcete-li použít třídu stringstream v programu C ++, musíme použít záhlaví .
Například,kód pro extrakci celého čísla z řetězce by byl:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Zde deklarujeme objekt řetězce s hodnotou „2019“ a objekt int „myInt“. Dále použijeme konstruktor třídy stringstream ke konstrukci objektu stringstream z objektu řetězce. Poté pomocí operátoru extrakce (>>) se hodnota extrahuje do myInt. Z výše uvedeného kódu bude hodnota myInt 2019.
Pojďme prozkoumat různé operace třídy stringstream.
Operace vložení a extrakce pomocí řetězce řetězce
Nyní uvidíme, jak získat data do řetězce nebo operace vložení a jak získat data z řetězce, tj. Operace extrakce třídy řetězce.
# 1) Operace vložení
Abychom mohli dostat data do řetězce, můžeme použít dvě metody.
(i) Použití operátoru vložení (<<)
jak vložit kód na web
Vzhledem k objektu stringstream ss můžeme přiřadit data do vyrovnávací paměti ss následujícím způsobem pomocí<< operator.
stringstream ss; ss<< “hello,world!!”;
To vkládá „ahoj, svět !!“ do řetězce řetězce ss.
(ii) Použití funkce str (řetězec)
převést char na int c ++
Můžeme také použít funkci str pro přiřazení dat k vyrovnávací paměti řetězce. Funkce str převezme datový řetězec jako argument a přiřadí tato data objektu stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Extrakční operace
Máme dvě metody, jak získat data z řetězce nebo pro extrakci.
(i) Použití funkce str ()
Můžeme použít funkci str () k získání dat z stringstream následujícím způsobem.
stringstream ss; ss<<”Hello,World”; cout< (ii) Používání extrakčního operátoru (>>)
Můžeme použít operátor extrakce k zobrazení dat řetězce takto.
Stringstream ss; ss<>str;
Podle výše uvedeného kódu bude mít proměnná str hodnotu objektu ss jako výsledek akce operátoru extrakce.
Níže je uveden kompletní program, který demonstruje použití operací vložení a extrakce třídy 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ýstup:
Ve výše uvedeném programu jsme nejprve ukázali metody vkládání, tj. Operátor<< and str(string) function that reads the string into stringstream.
Dále jsme viděli fungování extrakčních metod, které jsou funkcí str (), která získává data z řetězce a operátoru >>.
Všimněte si, že pro operátor >>, protože počáteční data řetězce se skládají z mezer při přiřazování dat k řetězcové proměnné, bude číst pouze do prvních mezer. Proto k převedení celého objektu stringstream na data řetězce potřebujeme každou jednu proměnnou ke čtení dat oddělených mezerami.
Proto ve výše uvedeném programu potřebujeme tři řetězcové proměnné, abychom získali všechna data objektu řetězce.
Aplikace stringstream v C ++
Můžeme najít použití třídy stringstream v různých aplikacích.
Níže jsou pro vaši potřebu diskutovány některé aplikace:
# 1) Převod mezi řetězci a čísly
Operátory vkládání a extrakce řetězce proudu pracují se všemi základními typy dat. Proto je můžeme použít k převodu řetězců na číselné typy a naopak.
Kompletní program pro převod mezi řetězci a čísly je uveden níže.
#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ýstup:
Nejprve jsme převedli číselné hodnoty na řetězcové hodnoty. Dále převedeme číselné hodnoty řetězce na číselné hodnoty.
youtube to mp4 converter zdarma ke stažení plná verze
# 2) Počítání počtu slov v řetězci
Můžeme použít třídu stringstream k spočítání počtu slov v řetězci. Celý program je uveden níže.
#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ýstup:
Počet slov v daném řetězci je: 9
Chcete-li spočítat počet slov v daném řetězci, nejprve jej převedeme na objekt stringstream. Potom spočítáme každé slovo pomocí operátoru extrakce (jak se zastaví na každém prázdném místě) ve smyčce. Nakonec vytiskneme hodnotu celkového počtu slov.
# 3) Tisk jednotlivých frekvencí slov v řetězci
Další aplikací stringstream v C ++ je tisk frekvencí různých slov v daném řetězci. To znamená, že vytiskneme, kolikrát se konkrétní slovo v daném řetězci objeví.
Z tohoto důvodu jsme udržovali strukturu mapy, která bude mít pár klíč – hodnota s každým slovem v řetězci jako klíčem a jeho odpovídající hodnotou je frekvence daného slova.
Kompletní program C ++ je uveden níže.
#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ýstup:
V tomto programu je každé slovo v řetězci zadáno do mapy a poté je počet nebo frekvence každého slova zaznamenán jako hodnota pro odpovídající klíč na mapě. Tímto způsobem vydáme všechna slova řetězce a jejich odpovídající frekvence.
Závěr
Třída Stringstream se používá pro vkládání a extrakci dat do / z řetězcových objektů. Funguje jako proud pro objekt řetězce. Třída stringstream je podobná streamům cin a cout kromě toho, že nemá vstupní-výstupní kanál.
Diskutovali jsme o různých operacích třídy stringstream spolu s několika příklady jejích aplikací v programování.
V našich dalších výukách budeme podrobně diskutovat o knihovních funkcích jazyka C ++.
=> Podívejte se na celou sérii školení C ++ zde.
Doporučené čtení
- Použití kurzoru v MongoDB s příklady
- Použití ObjectId () v MongoDB s příklady
- Naučte se používat C # StringBuilder třídu a její metody s příklady
- Výukový program pro rozhraní Java a abstrakt třídy s příklady
- Příklady uplatnění selenu - praktické aplikace v projektech
- Dokument dotazu MongoDB pomocí metody Find () (příklady)
- C # String Tutorial - Metody řetězců s příklady kódu
- Prozkoumejte základy Java v selenu pomocí příkladů