![048 - Programski jezik C - Rad sa matricama (dva primera)](https://i.ytimg.com/vi/Ix8h63e6NPc/hqdefault.jpg)
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 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 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 Unesite funkciju int. Vraća cijeli broj kao rezultat usporedbe duljine dva niza.
#include stdio.h> #include string.h> int main () {}
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 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 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Ž.