Kako primerjati dva niza v programskem jeziku C.

Avtor: William Ramirez
Datum Ustvarjanja: 18 September 2021
Datum Posodobitve: 1 Julij. 2024
Anonim
C_68 C program to Compare two Strings | with strcmp() and without strcmp() function
Video.: C_68 C program to Compare two Strings | with strcmp() and without strcmp() function

Vsebina

V kodi C je precej pogosto primerjati dolžine nizov, da bi ugotovili, kateri niz vsebuje več znakov. To je uporabno za razvrščanje podatkov. Za primerjavo nizov je potrebna posebna funkcija - ne uporabljajte != ali ==.

Koraki

  1. 1 Programski jezik C vključuje dve funkciji, ki ju lahko uporabite za primerjavo dolžin nizov. Obe funkciji sta vključeni v knjižnico string.h>.
    • strcmp () - ta funkcija primerja dva niza in vrne razliko v številu znakov.
    • strncmp () - ta funkcija je enaka strcmp () razen prvega n znakov. Velja za bolj varno, ker se izogiba napakam pri prelivanju.
  2. 2 Zaženite program z zahtevanimi knjižnicami. Potrebovali boste knjižnice stdio.h> in string.h>kot tudi vse druge knjižnice, potrebne za vaš poseben program.

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

  3. 3 Vnesite funkcijo int. Vrne celo število kot rezultat primerjave dolžine dveh nizov.

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

  4. 4 Opredelite dva niza, ki jih želite primerjati. V našem primeru primerjamo dva niza tipa char... Določite tudi vrnjeno vrednost kot celo število.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabolko"; char * str2 = "oranžna"; int ret; }

  5. 5 Vnesite primerjalno funkcijo. V našem primeru bomo uporabili funkcijo strncmp ()... V njem morate nastaviti število izmerjenih znakov.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabolko"; char * str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 8); / * Primerja dva niza dolga do 8 znakov * /}

  6. 6 Vnesite pogojni stavek Če... Sicer pa. Pokazati je treba, katera vrstica je daljša. Funkcija strncmp () vrne številko 0če so dolžine nizov enake, 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, 8); if (ret> 0) {printf ("str1 je daljši"); } else if (ret 0) {printf ("str2 je daljši"); } else {printf ("Dolžine vrstic so enake"); } return (0); }

Opozorila

  • Ne pozabite, da če so dolžine nizov enake, se vrne vrednost 0. To je lahko zmedeno, ker je tudi 0 FALSE.