Hvordan sammenligne to strenger i programmeringsspråket C

Forfatter: William Ramirez
Opprettelsesdato: 18 September 2021
Oppdater Dato: 1 Juli 2024
Anonim
Hvordan sammenligne to strenger i programmeringsspråket C - Samfunn
Hvordan sammenligne to strenger i programmeringsspråket C - Samfunn

Innhold

Det er ganske vanlig i C -kode å sammenligne strenglengder for å finne ut hvilken streng som inneholder flere tegn. Dette er nyttig for sortering av data. En spesiell funksjon er nødvendig for å sammenligne strenger - ikke bruk != eller ==.

Trinn

  1. 1 C -programmeringsspråket inneholder to funksjoner som du kan bruke til å sammenligne strenglengder. Begge disse funksjonene er inkludert i biblioteket string.h>.
    • strcmp () - denne funksjonen sammenligner to strenger og returnerer differansen i antall tegn.
    • strncmp () - denne funksjonen er den samme som strcmp () bortsett fra at den første n tegn. Det regnes som mer sikkert fordi det unngår overløpssvikt.
  2. 2 Start programmet med de nødvendige bibliotekene. Du trenger biblioteker stdio.h> og string.h>så vel som alle andre biblioteker som kreves for ditt spesifikke program.

    #include stdio.h> #include string.h>

  3. 3 Skriv inn funksjon int. Det returnerer et helt tall som et resultat av å sammenligne lengden på to strenger.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Identifiser de to strengene du vil sammenligne. I vårt eksempel, la oss sammenligne to strenger av type røye... Definer også returverdien som et heltall.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oransje"; int ret; }

  5. 5 Skriv inn en sammenligningsfunksjon. I vårt eksempel vil vi bruke funksjonen strncmp ()... I den må du angi antall målte tegn.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oransje"; int ret; ret = strncmp (str1, str2, 8); / * Sammenligner to strenger på opptil 8 tegn lange * /}

  6. 6 Skriv inn en betinget uttalelse Hvis... Ellers. Det er nødvendig for å vise hvilken linje som er lengre. Funksjon strncmp () vil returnere nummeret 0hvis lengden på strengene er den samme, et positivt tall hvis str1 er lengre, og et negativt tall hvis str2 er lengre.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oransje"; int ret; ret = strncmp (str1, str2, 8); hvis (ret> 0) {printf ("str1 er lengre"); } annet hvis (ret 0) {printf ("str2 er lengre"); } else {printf ("Linjelengder er like"); } retur (0); }

Advarsler

  • Husk at hvis lengden på strengene er lik, returneres verdien 0. Dette kan være forvirrende fordi 0 også er FALSK.