Strncmp C ++

Strncmp C ++
Strenger er hoveddelen av C ++ -språket, da det har mange innebygde funksjoner for å gjøre noen spesifikke oppgaver på disse strengene. Du kan lage underlag, sjekke størrelsene deres og relatere dem til hverandre. Strengsammenligning er det mest brukte konseptet i C++. For å gjøre dette, kom C ++ med strncmp () -funksjon. Det er ganske enkelt å bruke med IF-Else-utsagn i koden. Derfor vil vi diskutere dets arbeid i Ubuntu 20.04 System. La oss komme i gang med C ++ nye filgenerering med berøringsinstruksjon på skallet og åpne den med "Nano" nøkkelordet.

Eksempel 01:

La oss komme i gang med det første eksemplet for å bruke strncmp () -funksjonen. Koden er startet med C ++ bibliotekets inkludering. Hodebibliotekene vi har inkludert er “iostream” og “String.H ”for bruk av inngangsutgangsstrømmen og strengfunksjonene direkte i koden. C ++ “STD” navneområde er nødvendig for å legge til i koden for å benytte seg av “Cin” og “Cout” -uttalelser. All koden er gjort innenfor hovedfunksjonen (). Så vi startet det med erklæringen og initialiseringen av strengvariabler av to tegn på størrelse 30, i i størrelse 30, i.e. S1 og S3. Begge filene inneholder strengtypeverdiene i dem, i.e. halv samme og halv annerledes. Strncmp () -funksjonen er blitt kalt for å sammenligne både de to variablene S1 og S2.

Denne funksjonssamtalen har brukt både variablene S1 og S2 i argumentene og antall elementer vi ønsker å sammenligne, i.e. 9. Antall like tegn for begge strengene som returneres av strncmp () -funksjonen vil bli lagret i heltallvariabelen “I”. Her kommer "if-elv" -uttalelsen for å sjekke om det returnerte antallet like tegn er null, mindre enn 0 eller større enn 0. Hvis tallet “i” er lik null, vil cout -setningen vise strengen lik utgang. Dette betyr at det ikke er noen uovertruffen karakterer som er funnet så langt. Ellers vil den andre "cout" -uttalelsen vise at strengene ikke er like.

Etter denne kodesamlingen med G ++ og utførelse med "./en.Ut "-kommandoen har vi fått resultatet som å vise at begge strengene er like opp til de første 9 tegnene i hver.

La oss endre antall tegn som skal sammenlignes mellom begge strengene. Så vi har brukt det samme kodestykket for C++. Vi har oppdatert strncmp () -funksjonen her ved å erstatte det tredje argumentet. Vi har erstattet 9 med 14 for å sammenligne totalen av de første 14 tegnene fra begge strengene.

Etter den oppdaterte kodesamlingen og kjøringen, har vi fått den viste utdataene nedenfor. Siden streng 1 er forskjellig fra streng 2 og fremover, er det 10th Karakter viser at begge strengene ikke er like etter de første 9 tegnene.

Eksempel 02:

La oss se på et annet eksempel på strncmp () -funksjonen som fungerer på forskjellige typer strenger. Denne gangen vil vi se på to samme strenger av karaktertypen med forskjellige tilfeller. Så vi har startet dette eksemplet med de samme overskriftene og navneområdene til C ++ før Main () -funksjonsimplementeringen. Innenfor Main () -metoden er 2 karaktertype strenger blitt initialisert med strengverdier; Begge er de samme i karakterer, men forskjellige i typekasser, jeg.e. øvre og nedre. StrnCMP () -metoden er blitt kalt for å sjekke om begge strengene er like opp til de første 5 tegnene. Uttalelsen "if-elv" vil fungere deretter, jeg.e. Lik eller ikke lik. La oss lagre og utføre denne koden for å se oppdateringen fungerer som den skal eller ikke.

Vi har samlet denne koden først og utført den etter det. Til gjengjeld har vi at strengene ikke er like. Dette beviser at strncmp () -funksjonen returnerer 0 hvis og bare hvis begge strengene er de samme i tegn og typekasser. Ellers vil den returnere en verdi mindre enn eller lik 0.

Derfor har vi oppdatert strengverdiene i koden med samme typekasser og tegn. Etter strenginitialisering har vi kalt StrnCMP () -metoden for å sammenligne både strengen opp med det siste tegnet. Vi har lagt til den nestede "if-elv" -uttalelsen her for å sjekke mer enn 1 tilstand. Hvis returverdien er lik 0, vil den returnere at strengene er like sammen med visningen av returnert verdi. Ellers, hvis sammenligningsverdien som returneres er større eller mindre enn 0, vil den fungere deretter og vise den spesielle returnerte verdien.

Etter samlingen og utførelsen av denne oppdaterte koden, fikk vi "Strings er like" -meldingen og den returnerte verdien, i.e. 0.

Eksempel 03:

Vi har gjort med alle eksemplene ved å bruke strncmp () -funksjonen for å se om to strenger er like eller ikke. Vi vil se på strncmp () -funksjon litt annerledes denne gangen. Vi bruker en stor streng og en liten streng i koden. Så vi har startet vårt eksempel med iostream og streng.H headerbiblioteker ved å bruke nøkkelordet “#include” med begge deler. Etter å ha lagt til navneområdet, har vi startet Main () -funksjonen med to strengvariabler initialisering.

Strengen S1 inneholder mer enn 5 tegn, og streng S2 inneholder bare 5. StrnCMP () -funksjonen er utført med en enkel funksjon som kalles begge variablene til argumentet. Antall tegn som skal matches er satt til 5. Strncmp () -funksjonen vil sammenligne begge variablene og returnere det spesielle resultatet. Ettersom vår første streng er større i størrelse enn 2nd streng og stemmer ikke til 2nd streng, derfor vil den "ellers-hvis" delen av uttalelsen for "i> 0" bli utført. Til gjengjeld vil det vise at “S1 er større enn S2” sammen med den returnerte verdien av “I” for flere uoverensstemmelser.

Etter å ha kjørt denne koden på skallet, har vi fått resultatet som forventet, jeg.e. S1 er større enn S2 derimot, verdien av "jeg" returneres som "32".

Overordnet kode for dette eksemplet vil forbli den samme som vi har gjort i koden ovenfor. Den eneste endringen vi har fått her er utvekslingen av strengverdier med hverandre. Nå er streng S2 større i størrelse enn streng S1. I dette tilfellet må den siste eller uttalelsen utføres. La oss kjøre denne koden nå.

Etter denne kodesamlingen og utførelsen har vi sett at den andre delen av koden er utført etter funksjonen StrnCMP (). Den viser at den første strengen er mindre i størrelse enn den andre strengen, mens ingen av tegnene nøyaktig stemmer.

Konklusjon:

Til slutt har vi fullført forklaringen på strncmp () -funksjonen til C ++ for å sammenligne to strenger. Vi har diskutert StrnCMP () -metoden med forskjellige typer strenger, i.e. den ene større enn den andre i størrelse, samme strenger og forskjellige strenger. Enkle og nestede "if-elv" -uttalelser er blitt brukt så langt for å gjøre kodekontrollen av forskjellige betingelser for strenger og returnerte verdier med en strncmp () -metode. På grunn av enkelheten i eksemplene våre, håper vi at du vil finne det enkelt å lære og implementere.