Kako usporediti dva niza u programskom jeziku C

Autor: William Ramirez
Datum Stvaranja: 18 Rujan 2021
Datum Ažuriranja: 1 Srpanj 2024
Anonim
048 - Programski jezik C - Rad sa matricama (dva primera)
Video: 048 - Programski jezik C - Rad sa matricama (dva primera)

Sadržaj

U C kodu je uobičajeno uspoređivati ​​duljine nizova kako bi se saznalo koji niz sadrži više znakova. Ovo je korisno za sortiranje podataka. Za usporedbu nizova potrebna je posebna funkcija - nemojte koristiti != ili ==.

Koraci

  1. 1 Programski jezik C uključuje dvije funkcije koje možete koristiti za usporedbu duljina niza. Obje ove funkcije uključene su u knjižnicu niz.h>.
    • strcmp () - ova funkcija uspoređuje dva niza i vraća razliku u broju znakova.
    • strncmp () - ova funkcija je ista kao strcmp () osim što je prvi n likovi. Smatra se sigurnijim jer izbjegava kvarove prelijevanja.
  2. 2 Pokrenite program sa potrebnim knjižnicama. Trebat će vam knjižnice stdio.h> i niz.h>kao i sve druge knjižnice potrebne za vaš određeni program.

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

  3. 3 Unesite funkciju int. Vraća cijeli broj kao rezultat usporedbe duljine dva niza.

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

  4. 4 Odredite dva niza koja želite usporediti. U našem primjeru usporedimo dva niza tipa char... Također definirajte povratnu vrijednost kao cijeli broj.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabuka"; char * str2 = "narančasta"; int ret; }

  5. 5 Unesite funkciju usporedbe. U našem primjeru koristit ćemo funkciju strncmp ()... U njemu morate postaviti broj izmjerenih znakova.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabuka"; char * str2 = "narančasta"; int ret; ret = strncmp (str1, str2, 8); / * Uspoređuje dva niza dugačka do 8 znakova * /}

  6. 6 Unesite uvjetni izraz Ako... Inače. Potrebno je pokazati koja je linija duža. Funkcija strncmp () vratit će broj 0ako su duljine nizova iste, pozitivan broj ako je str1 duži i negativan broj ako je str2 dulji.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabuka"; char * str2 = "narančasta"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 je dulji"); } else if (ret 0) {printf ("str2 je duži"); } else {printf ("Duljine redaka su jednake"); } return (0); }

Upozorenja

  • Upamtite da ako su duljine nizova jednake, bit će vraćena vrijednost 0. To može biti zbunjujuće jer je 0 također LAŽ.