stringstream class c usage examples
En strengstrømsklasse i C ++ er en strømklasse, der kan bruges på strenge. Strengstrømsklassen Implementerer input / output-operationer på hukommelsesbasestreams, dvs. streng:
Strengstrømsklassen i C ++ tillader, at et strengobjekt behandles som en strøm. Det bruges til at betjene strenge. Ved at behandle strengene som strømme kan vi udføre ekstraktion og indsættelse fra / til streng ligesom cin og cout streams.
Disse typer operationer er mest nyttige til at konvertere streng til numeriske datatyper og omvendt. Strengstrømsklassen viser sig også at være nyttig i forskellige typer af parsing.
=> Læs gennem Easy C ++ træningsserien.
Hvad du vil lære:
stringstream klasse i C ++
En strengstrømsklasse kan repræsenteres billedligt som følger:
Vi kan se, hvor strengstrømsklassen kommer ind i billedet i ios-diagrammet. Denne klasse er afledt af iostream-klassen. Objekter af strengstrømsklassen bruger en strengbuffer, der indeholder en række af tegn. Denne buffer kan tilgås direkte som et strengobjekt.
Vi kan bruge str-medlem af strengstrømmen til dette formål. For at bruge stringstream-klasse i C ++ -programmet skal vi bruge headeren .
For eksempel,koden til at udtrække et heltal fra strengen ville være:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Her erklærer vi et strengobjekt med værdien '2019' og et int-objekt 'myInt'. Dernæst bruger vi stringstream-klassekonstruktøren til at konstruere et stringstream-objekt ud fra strengobjektet. Derefter ekstraheres værdien med myInt ved hjælp af ekstraktionsoperatøren (>>). Fra ovenstående kode er værdien af myInt 2019.
Lad os udforske de forskellige operationer i stringstream-klassen.
Indsætnings- og ekstraktionsoperationer ved hjælp af stringstream
Nu vil vi se, hvordan man får data til strengstrømmen eller indsættelsesoperationen, og hvordan man får data ud af strengstrømmen, dvs. ekstraktionsoperationen af strengstrømsklassen.
# 1) Brug af indsættelse
For at få dataene ind i en strengstrøm kan vi bruge to metoder.
(i) Brug af indsætningsoperator (<<)
shell scripting interview spørgsmål og svar til erfarne
Givet et stringstream-objekt ss, kan vi tildele data til ss-bufferen som følger ved hjælp af<< operator.
stringstream ss; ss<< “hello,world!!”;
Dette indsætter 'hej verden !!' ind i strengstrømmen ss.
(ii) Brug af str (string) -funktion
Vi kan også bruge str-funktionen til at tildele data til stringstream-bufferen. Str-funktionen tager datastrengen som et argument og tildeler disse data til stringstream-objektet.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Ekstraktionsoperation
Vi har to metoder til at få dataene ud af stringstream eller til ekstraktionsoperationen.
(i) Brug af str () -funktionen
Vi kan bruge str () -funktionen til at få dataene ud af stringstream som følger.
stringstream ss; ss<<”Hello,World”; cout< (ii) Brug af ekstraktionsoperator (>>)
Vi kan bruge ekstraktionsoperatøren til at vise strengstrømdata som følger.
Stringstream ss; ss<>str;
I henhold til ovenstående kode vil variablen str have værdien af ss-objektet som et resultat af ekstraktionsoperatorens handling.
Nedenfor er et komplet program, der demonstrerer brugen af indsættelses- og ekstraktionsoperationer 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< Produktion:
I ovenstående program har vi først vist indsættelsesmetoderne, dvs. operatør<< and str(string) function that reads the string into stringstream.
Dernæst så vi arbejdet med ekstraktionsmetoder, der er str () -funktion, der får dataene ud af strengstrømmen og operatoren >>.
Bemærk, at for operatør >>, da de oprindelige strengstrømdata består af mellemrum, mens data tildeles en strengvariabel, vil de kun læse indtil det første hvide område. Derfor skal vi konvertere hele stringstream-objektet til strengdata, hver for at læse dataene adskilt af det hvide mellemrum.
software, der er installeret på en computer og bruges til at styre virtuelle maskiner
Derfor har vi i ovenstående program brug for tre strengvariabler for at få hele stringstream-objektdataene.
Anvendelser af stringstream i C ++
Vi kan finde anvendelsen af stringstream-klasse i forskellige applikationer.
Nogle af applikationerne er blevet diskuteret nedenfor til din reference:
# 1) Konvertering mellem strenge og tal
Indsætnings- og ekstraktionsoperatører af strengstrømmen arbejder med alle grundlæggende datatyper. Derfor kan vi bruge dem til at konvertere strenge til numeriske typer og omvendt.
Det komplette program til konvertering mellem strenge og tal er angivet 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:'< Produktion:
For det første har vi konverteret numeriske værdier til strengværdier. Derefter konverterer vi numeriske strengværdier til numeriske værdier.
# 2) Tæller antallet af ord i en streng
Vi kan bruge klassen stringstream til at tælle antallet af ord i en streng. Det komplette program er angivet 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; }
Produktion:
Antal ord i den givne streng er: 9
For at tælle antallet af ord i en given streng konverterer vi først det til stringstream-objektet. Derefter tæller vi hvert ord ved hjælp af en ekstraktionsoperator (da det stopper ved hvert hvidt område) i en løkke. Endelig udskriver vi værdien af det samlede antal ord.
# 3) Udskriv individuelle ordfrekvenser i en streng
Den næste anvendelse af stringstream i C ++ er at udskrive frekvenserne for forskellige ord i en given streng. Dette betyder, at vi udskriver, hvor mange gange et bestemt ord vises i den givne streng.
Til dette har vi opretholdt en kortstruktur, der vil have et nøgleværdipar med hvert ord i strengen som en nøgle, og dens tilsvarende værdi er frekvensen af det pågældende ord.
Det komplette C ++ - program 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 Produktion:
grundlæggende spørgsmål og svar til java-interview
I dette program indtastes hvert ord i strengen på kortet, og derefter optælles antallet eller hyppigheden af hvert ord som en værdi for den tilsvarende tast på kortet. På denne måde udsender vi alle strengens ord og deres tilsvarende frekvenser.
Konklusion
Stringstream-klasse bruges til indsættelse og udvinding af data til / fra strengobjekterne. Det fungerer som en strøm til strengobjektet. Strengstrømsklassen ligner cin- og cout-streams bortset fra at den ikke har en input-output-kanal.
Vi har diskuteret forskellige operationer i stringstream-klassen sammen med flere eksempler på dens applikationer i programmering.
I vores efterfølgende tutorials vil vi diskutere C ++ - sprogets biblioteksfunktioner detaljeret.
=> Se efter hele C ++ træningsserien her.
Anbefalet læsning
- Brug af markør i MongoDB med eksempler
- Brug af ObjectId () i MongoDB med eksempler
- Lær at bruge C # StringBuilder klasse og dens metoder med eksempler
- Java-interface og abstrakt klasseundervisning med eksempler
- Eksempler på selenpåstand - Praktiske anvendelser i projekter
- MongoDB-forespørgselsdokument ved hjælp af Find () -metoden (eksempler)
- C # String Tutorial - Strengmetoder med kodeeksempler
- Udforsk det væsentlige ved Java i selen med eksempler