Hvis C ++ -kodekodene våre møter rom mens vi utfører noen av disse tidligere operasjonene, vil vi motta uventede utfall, for eksempel feil karaktertelling, feil sorterte lister, unøyaktige strengsammenligninger og ødelagte URL -er. Som standard regnes disse som hvitespace -tegn, jeg.e., “\ N”, “\ t”, “”, “\ V”, “\ r”, “f”.
Noen ganger er det viktig å fjerne plass fra strenger i programmering for å unngå uventede utfall. Lær hvordan du fjerner mellomrom fra strenger og hvordan du takler flere mellomrom med denne artikkelen.
Eksempel 1: Bruke :: Isspace -metoden for å fjerne hvitfarer fra strengen i C++
For å trekke ut hvitespace -tegn fra std :: strenger, er den vanlige tilnærmingen å bruke std :: fjerne hvis metoden. STD :: Fjern_IF-algoritmen eliminerer ikke effektivt tegn fra strengen, men flytter heller alle tegnene med ikke-hvite. Metoden std :: remove_if krever et predikat som bestemmer hvilke tegn som skal slette fra strengen.
ISSPACE () -metoden er den som er spesifisert i CCType -overskriften og søker etter Whitespace -tegn kategorisert av den installerte C -lokaliteten.
Følgende eksempel starter fra hovedfunksjonen. Standard strengklassens strengdeklarasjon er definert i hovedmetoden. Strengvariabelen er definert som "STR" og initialiseres med strengen som inneholder Whitespace -tegn. For å fjerne hvitespasninger fra strengen, brukte vi den normale sletteprosedyren.
Vi har brukt std :: remove_if -metoden. I STD :: Fjern_IF -metoden har vi passert ":: Isspace" -funksjonen i et søk etter et hvitt -space -tegn i en gitt streng. Strengen etter å ha fjernet hvitespasene vil bli skrevet ut på følgende skjermbilde:
#inkludereSom du kan se, finnes ingen hvitrommete karakter i følgende vist streng:
Eksempel 2: Bruke STD :: Isspace -metoden for å fjerne hvitespaser fra strengen i C++
I dette eksemplet bruker vi standardbindingsmetoden for å fjerne hvitrommet fra strengen ved å ringe STD :: Isspace -funksjonen. I stedet for å avhengig av C -lokalitetens klassifisering av Whitespace -tegn, kan vi bruke STD :: Isspace representert i topplokalet, der CType -aspektet av det spesifiserte lokaliteten klassifiserer Whitespace -tegnene.
Binding av en funksjon med plassholdere lar deg endre posisjonen og mengden av verdier som funksjonen vil bruke, og endre funksjonen basert på ønsket utfall.
Strengen er definert som "str_n" i hoved-. Her har vi påkalt slettingsmetoden for strengen "str_n" der to funksjoner brukes std :: remove_if og std :: bind. Merk at vi har brukt Std :: Isspace i bindfunksjonen for å finne hvitespasninger i strengen; Deretter vil slette -metoden fjerne hvitrommet fra strengen og returnere en ny utfallsstreng.
#inkludereNår du sammenstiller det forrige programmet, viser skallet de ikke-hvite space-tegnene.
Eksempel 3: Bruke Unary -metoden for å fjerne hvitespasninger fra strengen i C++
I stedet for å bruke :: Isspace eller Std :: Isspace, kan vi lage en tilpasset tilstand som returnerer sant hvis tegnet er en hvitrommet karakter eller ellers falsk. Vi har laget vår Unary -metode for å fjerne Whitespace -tegn fra strengen.
Vi har laget en unary -metode “MyFunction” av datatype bool. Funksjonen har gått med argumentet fra den usignerte røyevariabelen “Mychar”. Inne i funksjonen har vi en returbetingelse som returnerer det spesifiserte hvitrommet hvis du finnes i strengen.
Deretter har vi hovedfunksjonen der strengen genereres som "MyString" og inneholder strengtegnene med Whitespace -tegn. Slettingsmetoden brukes heretter i strengdeklarasjonen der Remove_if og funksjonen "MyFunction" kalles å slette Whitespace -tegnene.
#inkludereDen resulterende strengen har alle ikke-Whitespace-tegn vist på følgende skallskjerm:
Eksempel 5: Bruke regex -metoden for å fjerne hvitespasninger fra strengen i C++
Regex erstatning () -metoden erstatter et vanlig uttrykksmønster med en streng som inneholder Whitespace -tegn. La oss diskutere det med eksempler på demonstrasjonen.
C ++ -programmet inneholder en regex -fil i overskriftsdelen for å få tilgang til regex_replace -funksjonen i programmet. Int -hoved er definert, som har en integrert strengrepresentasjon med Whitespace -tegnene i en strengvariabel “Stringis”. Deretter har vi kalt regex -funksjonen i en strandet regex -representasjon og passert strengvariabelen “Stringis” med “+” -operatøren. Regex_replace -funksjonen kalles over den variable strengen “Stringis” for å slette hvitespasene eller hvitespace -tegnene fra den gitte strengen:
#inkludereRegex -erstatningen fjerner Whitespace -tegnene fra heltallstrengen, som er trykt i kommandoskallet til Ubuntu.
Konklusjon
Dermed kan vi fjerne Whitespace -tegn fra strengen i C ++ gjennom forskjellige metoder omtalt i denne artikkelen. Vi har alle demonstrasjonene av disse eksemplene med det resulterende resultatet av programmet. Du har et tilstrekkelig antall metoder for å erstatte eller fjerne hvite rom fra C ++ strenger. Velg metoder som tiltrekker deg, samtidig som du er passende for situasjonen.