I denne artikkelen vil vi utforske noen av de vanlige måtene å Del en streng ved hjelp av en avgrenser i c++.
Delte strenger ved bruk av avgrenser i C++
I C ++ er det flere tilnærminger for å bryte en streng ved hjelp av en avgrenser, inkludert:
1: Bruke funksjonene Find () og Substr ()
En streng kan deles ved hjelp av C ++ -funksjonene finne() og substr (). Den første forekomsten av en substring er lokalisert ved hjelp av finne() metode. Hvis det ikke er flere forekomster, vil det gjenværende stykket av strengen bli returnert etter å ha blitt plassert i vektoren. Substring som begynner i starten av teksten og avsluttes ved avgrenseren kan deretter tas ut ved hjelp av substr () funksjon. Vi kan fortsette å gjøre dette til alle underlagene er oppnådd.
Her er et C ++ eksempel på hvordan Del en streng ved hjelp av en avgrenser:
#inkludereI eksemplet over, en streng som heter “Str” og en avgrenser som heter “Avgrenser” er definert. Underlagene fra “Str” blir deretter trukket ut med en stundsløyfe. Plasseringen av avgrenseren returneres av finne() metode, eller Std :: String :: NPOS Hvis det ikke kan lokaliseres. Substringen fra starten av “Str” opp til avgrenseren blir trukket ut ved hjelp av “Substr ()” på dette stedet, og det blir deretter trykt til konsollen. Den ekstraherte understrengen og avgrenseren blir deretter tatt ut av “Str” bruker "viske ut()" funksjon. Når det ikke er flere avgrensere i “Str”, Vi gjentar denne operasjonen. Etterpå sender vi ut den siste substringen "kirsebær" til konsollen.
Produksjon
2: Bruke strtok () -funksjonen
De Strtok () Funksjon er en annen funksjon i C ++ som effektivt kan dele strengene ved hjelp av en avgrensende i et hvilket som helst C ++ -program. Det tar ut to innganger; strengen som skal deles og avgrensningskarakteren. Her er en implementering av Strtok () Funksjon i C ++:
#inkludereDe Strtok () Funksjon brukes i koden ovenfor for å bryte en brukerstøttet inngangsstreng til symboler, ved hjelp av et komma og et rom som avgrensere. Så publiserer den hvert symbol på konsollen på en egen linje. Dette oppnås ved å lagre inngangsstrengen i en char -matrise, iterere over symbolene med en røyepeker, og deretter dele strengen gjentatte ganger til alle symbolene er vist.
Produksjon
3: Bruke StringStream -klassen
Bruker Klasse er en annen teknikk for å dele en streng i C++. Det er mulig å legge inn og sende ut formaterte data, inkludert strenger, ved hjelp av denne klassen. En streng som håndteres som en strøm kan ha underlag hentet fra den ved hjelp av getline () metode. De getline () Metoden vil trekke ut substring opp til avgrenseren hvis vi gir den avgrenseren som en parameter.
Her er en illustrasjon av hvordan Del en streng i C++ bruker StringStream () funksjon.
#inkludereI koden over brukes en avgrensningskarakter for å dele en inngangsstreng i symboler ved hjelp av . Før du trekker ut hvert symbol fra Ved hjelp av avgrenseren initialiserer programmet en objekt med inngangsstrengen. En vektor av strenger utvides deretter med hvert token. Programmet løkker deretter gjennom vektoren, og skriver ut hvert token til konsollen på slutten.
Produksjon
Konklusjon
Å dele opp en streng ved hjelp av en avgrenser er en effektiv tilnærming i C ++, og det er flere innebygde funksjoner i C ++ som gjør det mulig å dele strenger. Disse funksjonene inkluderer finn (), substr (), strtok () og StringStream klasse. Utviklerne bør vurdere de spesifikke kravene i applikasjonen og velge funksjonen som best fungerer for dem.