logo

C strcmp()

I C-språket inneholder overskriftsfilen Standard String Library som inneholder noen nyttige og ofte brukte strengmanipulasjonsfunksjoner. I denne artikkelen vil vi se hvordan du sammenligner strenger i C ved å bruke funksjonen strcmp().

Hva er strcmp() i C?

C strcmp() er en innebygd bibliotekfunksjon som brukes til strengsammenligning. Denne funksjonen tar to strenger (array av tegn) som argumenter, sammenligner disse to strengene leksikografisk , og returnerer deretter 0,1 eller -1 som resultat. Det er definert på innsiden header-fil med prototypen som følger:



Syntaks for strcmp() i C

strcmp( first_str , second_str );>

Parametre for strcmp() i C

Denne funksjonen tar to strenger (array av tegn) som parametere:

    first_str: Første streng tas som en peker til konstanttegnet (dvs. uforanderlig streng). second_str: Andre streng tas som en peker til et konstant tegn.

Merk: Grunnen til at argumenter tas som const char * i stedet for bare char * er at funksjonen ikke kunne endre strengen og også gjøre dem anvendelige for konstante strenger.

Returverdi av strcmp() i C

Strcmp()-funksjonen returnerer tre forskjellige verdier etter sammenligningen av de to strengene som er som følger:



1. Null ( 0 )

En verdi lik null når begge strengene er funnet å være identiske. Det er, alle tegnene i begge strengene er de samme.

2. Større enn null (> 0 )

En verdi større enn null returneres når første ikke-matchende tegn i first_str har en større ASCII-verdi enn det tilsvarende tegnet i second_str eller vi kan også si at hvis tegnet i first_str er leksikografisk etter tegnet til second_str, så returneres null.

3. Mindre enn null ( <0 )

En verdi mindre enn null returneres når første ikke-matchende tegn i first_str har en mindre ASCII-verdi enn det tilsvarende tegnet i second_str . Vi kan også si at hvis tegnet i first_str er leksikografisk foran tegnet til second_str, returneres null.



For å vite mer om ASCII-verdier, se denne artikkelen – ASCII-tabell

Hvordan bruke strcmp()-funksjonen i C

Følgende eksempel viser hvordan du bruker strcmp()-funksjonen i C:

C




// C Program to Demonstrate the use of strcmp() function> #include> #include> int> main()> {> >// declaring two same string> >char>* first_str =>'Geeks'>;> >char>* second_str =>'Geeks'>;> >// printing the strings> >printf>(>'First String: %s '>, first_str);> >printf>(>'Second String: %s '>, second_str);> >// printing the return value of the strcmp()> >printf>(>'Return value of strcmp(): %d'>,> >strcmp>(first_str, second_str));> >return> 0;> }>

java gjør mens
>

>

hvis av rudyard kipling sammendrag
Produksjon

First String: Geeks Second String: Geeks Return value of strcmp(): 0>

Hvordan fungerer strcmp() i C?

C strcmp()-funksjonen fungerer ved å sammenligne to strenger leksikografisk . Det betyr at den sammenligner ASCII-verdien til hvert tegn til den ikke-matchende verdien er funnet eller NULL-tegnet er funnet. Arbeidet med C strcmp()-funksjonen kan beskrives som følger:

1. Det starter med å sammenligne ASCII-verdiene til de første tegnene i begge strengene.

2. Hvis de første tegnene i begge strengene er like, vil denne funksjonen sjekke det andre tegnet, hvis de også er like, vil det krysse av for det tredje, og så videre til det første umatchede tegnet er funnet eller NULL-tegnet er funnet.

3. Hvis en NULL-tegnet er funnet , funksjonen returnerer null siden begge strengene vil være like.

strcmp med null som retur vlaue

4. Hvis et ikke-matchende tegn blir funnet,

  • Hvis ASCII-verdien til tegnet til den første strengen er større enn den til den andre strengen, vil den positive forskjellen ( > 0 ) mellom deres ASCII-verdier returneres.
strcmp med positiv avkastningsverdi
  • Hvis ASCII-verdien til tegnet til den første strengen er mindre enn den til den andre strengen, vil den negative forskjellen ( < 0 ) mellom deres ASCII-verdier returneres.
strcmp med negativ returverdi

Alle disse tre tilfellene er vist i eksemplene nedenfor.

Eksempler på strcmp() i C

Eksempel 1. strcmp() oppførsel for identiske strenger

Dette programmet illustrerer virkemåten til strcmp()-funksjonen for identiske strenger.

C




// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > >char> first_str[] =>'g f g'>;> >char> second_str[] =>'g f g'>;> > >// Using strcmp()> >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value returned by strcmp() is: %d'> , res);> >return> 0;> }>

>

>

Produksjon

Strings are equal Value returned by strcmp() is: 0>

Eksempel 2. strcmp() oppførsel for den leksikografisk større første strengen

Eksemplet nedenfor demonstrerer strcmp()-funksjonens virkemåte for den leksikografisk større første strengen.

C


kruskals algoritme



// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// z has greater ASCII value than g> >char> first_str[] =>'zfz'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value of result: %d'> , res);> > >return> 0;> }>

>

>

Produksjon

Strings are unequal Value of result: 19>

Eksempel 3. strcmp() oppførsel for den leksikografisk mindre første strengen.

Eksemplet nedenfor demonstrerer strcmp()-funksjonens virkemåte for den leksikografisk mindre første strengen.

C




som full form

// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// b has less ASCII value than g> >char> first_str[] =>'bfb'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value returned by strcmp() is: %d'> , res);> > > >return> 0;> }>

>

>

Produksjon

Strings are unequal Value returned by strcmp() is: -5>

Konklusjon

I denne artikkelen diskuterte vi C standard bibliotekfunksjon strcmp() som brukes til å sammenligne to strenger leksikografisk. Standardbiblioteket inneholder noen nyttige og ofte brukte funksjoner som gjør programmeringen enklere da de bidrar til å unngå å omskrive den ofte brukte funksjonen igjen og igjen ved behov.

Vanlige spørsmål om strcmp() i C

1. Hvordan kan vi sammenligne to strenger i C?

År: Vi kan bruke strcmp()-funksjonen som er definert i header-filen for å leksikografisk sammenligne to strenger (array av tegn).

2. Hva er funksjonsprototypen til strcmp() i C?

År: Funksjonsprototypen til strcmp()-funksjonen er som følger:

int strcmp(const char* lhs , const char* rhs );>

3. Når strcmp()-funksjonen returnerer null?

År: Strcmp()-funksjonen returnerer null når de to strengene er identiske.

4. Hva betyr den positive returverdien av strcmp()-funksjonen?

År: Strcmp()-funksjonen returnerer en positiv verdi når den første strengen er leksikografisk større enn den andre strengen.

5. Hva betyr den negative returverdien til strcmp()-funksjonen?

År: Den negative verdien som returneres av strcmp()-funksjonen betyr at den første strengen er leksikografisk mindre enn den andre strengen.

6. Hvordan sammenligner funksjonen strcmp() to strenger i C?

År: Strcmp()-funksjonen sammenligner ASCII-verdiene til hvert tegn i de to strengene til det ikke-matchende tegnet eller NULL-tegnet blir funnet.

7. Kan strcmp()-funksjonen brukes til å sammenligne ikke-strengdatatyper i C?

År: Nei, strcmp()-funksjonen kan ikke sammenligne ikke-strengdatatyper i C. Den kan bare sammenligne den mutbare eller uforanderlige strengdatatypen som avsluttes med et NULL-tegn.

Relaterte artikler: