Primerjaj dva niza v programskem jeziku C.

Avtor: Judy Howell
Datum Ustvarjanja: 27 Julij. 2021
Datum Posodobitve: 10 Maj 2024
Anonim
CS50 2014 - Week 4, continued
Video.: CS50 2014 - Week 4, continued

Vsebina

Primerjava dolžin nizov je pogosto uporabljena funkcija v programskem jeziku C, saj vam omogoča, da ugotovite, kateri niz vsebuje več znakov. To je zelo koristno za razvrščanje podatkov. Primerjava nizov zahteva posebno funkcijo; zato ne uporabljajte: != ali ==.

Stopati

  1. Obstajata dve funkciji, ki omogočata primerjavo nizov v jeziku C. Oba sta vključena v niz.h>knjižnica kod.
    • strcmp () - Ta funkcija primerja dva niza in vrne razliko v številu znakov.
    • strncmp () - To velja tudi za strcmp (), le da je ta prvi n primerja znake. Šteje se, da je varnejši, saj pomaga preprečiti zrušitve prelivanja.
  2. Zaženite program s potrebnimi knjižnicami. Imate obe knjižnici stdio.h> in niz.h> skupaj z drugimi knjižnicami, ki jih boste morda potrebovali za svoj program.

    #include stdio.h> [[Slika: Primerjaj dva niza v programiranju C, korak 1, različica 4.webp | center]] #include string.h>

  3. Začni eno.intfunkcijo. To funkcijo se najlažje naučite, saj vrne celo število, ki primerja dolžino obeh nizov.

    [[Slika: Primerjaj dva niza v programiranju C, korak 2, različica 4.webp | center]] #include stdio.h> [[Slika: Primerjaj dva niza v programiranju C, korak 3, različica 3.webp | center]] #include string. h> int main () {}

  4. Odločite se, katera dva niza želite primerjati. V tem primeru primerjamo dva podatka char strune. Vrnjeno vrednost morate določiti tudi kot celo število.

    [[Slika: Primerjaj dva niza v programiranju C, korak 4, različica 4.webp | center]] #include stdio.h> [[Slika: Primerjaj dva niza v programiranju C, korak 5, različica 4.webp | center]] #include string. h> int main () {char * str1 = "jabolko"; char * str2 = "oranžna"; int ret;}

  5. Dodajte funkcijo primerjave. Zdaj, ko ste definirali dva niza, lahko dodate funkcijo primerjave. Mi gremo strncmp () zato moramo zagotoviti, da je v funkciji nastavljeno število znakov za merjenje.

    [[Slika: Primerjaj dva niza v programiranju C, korak 6, različica 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 11); / * Primerja dva niza do 11 znakov * /}

  6. Uporaba.Če potemza izvedbo primerjave. Zdaj, ko smo ustvarili funkcijo, uporabite Če potem da določite, kateri niz je daljši. strncmp () daje 0 posledično, če so nizi enake dolžine, pozitivno število, če je str1 daljše, in negativno število, če je str2 daljše.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabolko"; char * str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 11); if (ret> 0) {printf ("str1 je daljši"); } else if (ret 0) {printf ("str2 je daljši"); } else {printf ("Oba niza sta enaka"); } vrnitev (0); }

Opozorila

  • Ne pozabite, da je vrnjena vrednost 0, če so nizi enaki. To je lahko zmedeno, ker je 0 tudi vrednost FALSE.