stringstream class c usage examples
En strängströmsklass i C ++ är en strömklass att fungera på strängar. Strängströmsklassen Implementerar in- / utmatningsfunktionerna på minnesbasströmmar, dvs sträng:
Strängströmsklassen i C ++ tillåter att ett strängobjekt behandlas som en ström. Den används för att använda strängar. Genom att behandla strängarna som strömmar kan vi utföra extraktion och insättning från / till sträng precis som cin- och cout-strömmar.
Dessa typer av operationer är mest användbara för att konvertera strängar till numeriska datatyper och vice versa. Strängströmsklassen visar sig också vara till hjälp vid olika typer av tolkning.
=> Läs igenom Easy C ++ Training Series.
Vad du kommer att lära dig:
stringstream Class In C ++
En strängströmsklass kan visas i bild enligt följande:
Vi kan se var strängströmsklassen kommer in i bilden i ios-diagrammet. Denna klass härleds från iostream-klassen. Objekt av strängströmsklassen använder en strängbuffert som innehåller en sekvens av tecken. Denna buffert kan nås direkt som ett strängobjekt.
Vi kan använda str-medlemmen i strängströmmen för detta ändamål. För att använda stringstream-klassen i C ++ - programmet måste vi använda rubriken .
Till exempel,koden för att extrahera ett heltal från strängen skulle vara:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Här förklarar vi ett strängobjekt med värdet '2019' och ett int-objekt 'myInt'. Därefter använder vi stringstream-klasskonstruktören för att konstruera ett stringstream-objekt från strängobjektet. Använd sedan extraktionsoperatören (>>), extraheras värdet till myInt. Från ovanstående kod kommer värdet av myInt att vara 2019.
Låt oss utforska de olika operationerna i strängströmsklassen.
Insättnings- och extraktionsoperationer med stringstream
Nu kommer vi att se hur man får in data i strängströmmen eller insättningsoperationen och hur man får ut data ur strängströmmen, dvs extraktionsoperationen för strängströmsklassen.
# 1) Införande
För att få in data i en strängström kan vi använda två metoder.
(i) Använda Insertion Operator (<<)
c ++ rand mellan 0 och 1
Med tanke på ett stringstream-objekt ss kan vi tilldela data till ss-bufferten enligt följande med hjälp av<< operator.
stringstream ss; ss<< “hello,world!!”;
Detta infogar 'hej, värld !!' in i strängströmmen ss.
(ii) Använda str (string) -funktion
Vi kan också använda str-funktionen för att tilldela data till stringstream-bufferten. Str-funktionen tar datasträngen som ett argument och tilldelar dessa data till stringstream-objektet.
bästa mobiltelefonspion för Android
stringstream ss; ss.str(“Hello,World!!”);
# 2) Extraktion
Vi har två metoder för att få ut data från stringstream eller för extraktionsoperationen.
(i) Använda str () -funktionen
Vi kan använda str () -funktionen för att få ut data från stringstream enligt följande.
stringstream ss; ss<<”Hello,World”; cout< (ii) Använda extraktionsoperatör (>>)
Vi kan använda extraktionsoperatören för att visa strängströmdata enligt följande.
Stringstream ss; ss<>str;
Enligt ovanstående kod kommer variabeln str att ha värdet av ss-objektet som ett resultat av extraktionsoperatorns åtgärd.
Nedan följer ett komplett program som visar användningen av insättnings- och extraktionsoperationer i strängströmsklassen.
#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< Produktion:
I ovanstående program har vi visat insättningsmetoderna först dvs. operatör<< and str(string) function that reads the string into stringstream.
Därefter såg vi arbetet med extraktionsmetoder som är str () -funktion som får data ur strängströmmen och operatören >>.
Observera att för operatören >>, eftersom den ursprungliga strängströmsdata består av mellanslag medan data tilldelas en strängvariabel, kommer den att läsas bara till det första vita utrymmet. För att konvertera hela strängströmsobjektet till strängdata behöver vi en variabel vardera för att läsa data åtskilda av mellanslag.
Därför behöver vi i ovanstående program tre strängvariabler för att få hela strängströmsobjektdata.
Tillämpningar av stringstream i C ++
Vi kan hitta användningen av stringstream-klass i olika applikationer.
Några av ansökningarna har diskuterats nedan för din referens:
# 1) Konvertering mellan strängar och siffror
Insättnings- och extraktionsoperatörer av strängströmmen arbetar med alla grundläggande datatyper. Därför kan vi använda dem för att konvertera strängar till numeriska typer och vice versa.
Det fullständiga programmet för konvertering mellan strängar och siffror ges nedan.
#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:'< Produktion:
Först har vi konverterat numeriska värden till strängvärden. Därefter konverterar vi numeriska strängvärden till numeriska värden.
# 2) Räknar antalet ord i en sträng
Vi kan använda klassen stringstream för att räkna antalet ord i en sträng. Det fullständiga programmet ges nedan.
#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; }
Produktion:
c ++ grundläggande intervjufrågor
Antal ord i en given sträng är: 9
För att räkna antalet ord i en given sträng konverterar vi först det till strängströmsobjektet. Sedan räknar vi varje ord med hjälp av en extraktionsoperator (eftersom det stannar vid varje vitt utrymme) i en slinga. Slutligen skriver vi ut värdet av det totala antalet ord.
# 3) Skriv ut enskilda ordfrekvenser i sträng
Nästa tillämpning av stringstream i C ++ är att skriva ut frekvensen för olika ord i en given sträng. Det betyder att vi kommer att skriva ut hur många gånger ett visst ord visas i den angivna strängen.
För detta har vi bibehållit en kartstruktur som kommer att ha ett nyckel-värdepar med varje ord i strängen som en nyckel och dess motsvarande värde är frekvensen för det specifika ordet.
Det fullständiga C ++ - programmet visas nedan.
#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 Produktion:
I detta program matas varje ord i strängen in i kartan och sedan registreras räkningen eller frekvensen för varje ord som ett värde för motsvarande tangent på kartan. På detta sätt matar vi ut alla strängens ord och deras motsvarande frekvenser.
Slutsats
Stringstream-klass används för att infoga och extrahera data till / från strängobjekten. Det fungerar som en ström för strängobjektet. Strängströmsklassen liknar cin- och cout-strömmar förutom att den inte har en ingångs- och utgångskanal.
Vi har diskuterat olika operationer i strängströmsklassen tillsammans med flera exempel på dess applikationer i programmering.
I våra efterföljande handledning kommer vi att diskutera biblioteksfunktionerna i C ++ - språket i detalj.
=> Leta efter hela C ++ träningsserien här.
Rekommenderad läsning
- Användning av markören i MongoDB med exempel
- Användning av ObjectId () i MongoDB med exempel
- Lär dig att använda C # StringBuilder-klass och dess metoder med exempel
- Java-gränssnitt och abstrakt klasshandledning med exempel
- Exempel på selenpåståenden - Praktiska tillämpningar i projekt
- MongoDB-frågedokument med Find () -metod (exempel)
- C # Stränghandledning - Strängmetoder med kodexempel
- Utforska de viktigaste delarna av Java i selen med exempel