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
- 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.
- 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>
- 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 () {}
- 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;}
- 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 * /}
- 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.