stringstream class c usage examples
En strengstrømsklasse i C ++ er en strømklasse som kan brukes på strenger. Strømstrømsklassen Implementerer inngangs- / utgangsoperasjonene på minnebaserte strømmer, dvs. streng:
Strengstrømsklassen i C ++ tillater at et strengobjekt behandles som en strøm. Den brukes til å operere på strenger. Ved å behandle strengene som strømmer kan vi utføre ekstraksjon og innsettingsoperasjon fra / til streng akkurat som cin og cout streams.
Disse operasjonstypene er mest nyttige for å konvertere streng til numeriske datatyper og omvendt. Strengstrømsklassen viser seg også å være nyttig i forskjellige typer analysering.
=> Les gjennom Easy C ++ Training Series.
Hva du vil lære:
stringstream Class In C ++
En strengstrømsklasse kan vises på følgende måte:
Vi kan se hvor strengstrømsklassen kommer inn i bildet i ios-diagrammet. Denne klassen er avledet fra iostream-klassen. Objekter av strengstrømsklassen bruker en strengbuffer som inneholder en sekvens med tegn. Denne bufferen kan nås direkte som et strengobjekt.
Vi kan bruke str-medlemmet i strengstrømmen for dette formålet. For å bruke strengstrømsklasse i C ++ -programmet, må vi bruke overskriften .
For eksempel,koden for å trekke ut et heltall fra strengen ville være:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Her erklærer vi et strengobjekt med verdien “2019” og et int-objekt “myInt”. Deretter bruker vi stringstream-klassekonstruktøren til å konstruere et stringstream-objekt fra strengobjektet. Deretter ekstraheres verdien med ekstraksjonsoperatøren (>>) til myInt. Fra koden ovenfor vil verdien av myInt være 2019.
La oss utforske de forskjellige operasjonene i strengstrømsklassen.
Innsettings- og ekstraksjonsoperasjoner ved hjelp av stringstream
Nå skal vi se hvordan du får data inn i strengstrømmen eller innsettingsoperasjonen, og hvordan du får data ut av strengstrømmen, dvs. ekstraksjonsoperasjonen til strengstrømsklassen.
# 1) Innsettingsoperasjon
For å få dataene inn i en strengstrøm, kan vi bruke to metoder.
(i) Bruke Insertion Operator (<<)
c ++ rand mellom 0 og 1
Gitt et strengstrømobjekt ss, kan vi tilordne data til ss-bufferen som følger ved hjelp av<< operator.
.net c # intervju spørsmål
stringstream ss; ss<< “hello,world!!”;
Dette setter inn 'hei, verden !!' inn i strengstrømmen ss.
(ii) Bruk av str (string) -funksjon
Vi kan også bruke str-funksjonen for å tilordne data til strengstrømsbufferen. Str-funksjonen tar datastrengen som argument og tilordner disse dataene til strengstrømobjektet.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Utvinningsoperasjon
Vi har to metoder for å få dataene ut av strengstrømmen eller for ekstraksjonsoperasjonen.
(i) Bruke str () -funksjonen
Vi kan bruke str () -funksjonen for å få dataene ut av strengstrømmen som følger.
stringstream ss; ss<<”Hello,World”; cout< (ii) Bruke utvinningsoperatør (>>)
Vi kan bruke ekstraksjonsoperatøren til å vise strengstrømdata som følger.
Stringstream ss; ss<>str;
I henhold til ovennevnte kode vil variabel str ha verdien av ss-objektet som et resultat av ekstraksjonsoperatøren.
Nedenfor er et komplett program som demonstrerer bruken av innsettings- og ekstraksjonsoperasjoner i strengstrø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< Produksjon:

I programmet ovenfor har vi vist innsettingsmetodene først dvs. operatør<< and str(string) function that reads the string into stringstream.
Deretter så vi arbeidet med ekstraksjonsmetoder som er str () -funksjon som får dataene ut av strengstrømmen og operatoren >>.
Merk at for operatør >>, da de første strengstrømdataene består av mellomrom mens de tilordnes dataene til en strengvariabel, vil de bare lese til det første hvite området. Derfor for å konvertere hele strengstrømobjektet til strengdata, trenger vi en variabel hver for å lese dataene atskilt med mellomrom.
Derfor i det ovennevnte programmet trenger vi tre strengvariabler for å få hele stringstream-objektdataene.
Anvendelser av strengstrøm i C ++
Vi kan finne bruken av strengstrømsklasse i forskjellige applikasjoner.
Noen av søknadene er diskutert nedenfor for din referanse:
# 1) Konvertering mellom strenger og tall
Innsettings- og ekstraksjonsoperatører av strengstrømmen jobber med alle grunnleggende typer data. Derfor kan vi bruke dem til å konvertere strenger til numeriske typer og omvendt.
lage en makefile c ++
Det komplette programmet for konvertering mellom strenger og tall er gitt nedenfor.
#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:'< Produksjon:

Først har vi konvertert numeriske verdier til strengverdier. Deretter konverterer vi numeriske strengverdier til numeriske verdier.
# 2) Teller antall ord i en streng
Vi kan bruke strengstrømsklassen til å telle antall ord i en streng. Det komplette programmet er gitt nedenfor.
#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; }
Produksjon:
Antall ord i gitt streng er: 9
For å telle antall ord i en gitt streng, konverterer vi den først til strengstrømobjektet. Deretter teller vi hvert ord ved hjelp av en ekstraksjonsoperator (da det stopper ved hvert hvite mellomrom) i en løkke. Til slutt skriver vi ut verdien av det totale antallet ord.
# 3) Skriv ut individuelle ordfrekvenser i en streng
Den neste applikasjonen av stringstream i C ++ er å skrive ut frekvensene til forskjellige ord i en gitt streng. Dette betyr at vi vil skrive ut hvor mange ganger et bestemt ord vises i den gitte strengen.
For dette har vi opprettholdt en kartstruktur som vil ha et nøkkelverdipar med hvert ord i strengen som en nøkkel, og den tilsvarende verdien er frekvensen til det bestemte ordet.
Det komplette C ++ - programmet er vist nedenfor.
#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 Produksjon:

I dette programmet blir hvert ord i strengen lagt inn i kartet, og deretter blir tellingen eller frekvensen til hvert ord registrert som en verdi for den tilsvarende tasten på kartet. På denne måten sender vi ut alle ordene i strengen og tilhørende frekvenser.
Konklusjon
Stringstream-klasse brukes til innsetting og utvinning av data til / fra strengobjektene. Den fungerer som en strøm for strengobjektet. Strømstrømsklassen ligner på cin- og cout-strømmer, bortsett fra at den ikke har en inngang-utgangskanal.
Vi har diskutert ulike operasjoner i strengstrømsklassen sammen med flere eksempler på programmene i programmeringen.
I de påfølgende veiledningene vil vi diskutere biblioteksfunksjonene til C ++ -språket i detalj.
=> Se etter hele C ++ treningsserien her.
Anbefalt lesing
- Bruk av markør i MongoDB med eksempler
- Bruk av ObjectId () i MongoDB med eksempler
- Lær å bruke C # StringBuilder-klasse og metodene med eksempler
- Java-grensesnitt og abstrakt klasseopplæring med eksempler
- Eksempler på selenpåstand - Praktiske anvendelser i prosjekter
- MongoDB spørringsdokument ved hjelp av Find () -metoden (eksempler)
- C # String Tutorial - Strengmetoder med kodeeksempler
- Utforsk det essensielle av Java i selen med eksempler