Poređenje dužine niza uobičajena je funkcija u C programiranju jer vam omogućuje da vidite koji niz sadrži više znakova. Ovo je vrlo korisno za sortiranje podataka. Za usporedbu nizova potrebna je posebna funkcija; ne koristite! = ili ==.
Koraci
Korak 1. Postoje dvije funkcije koje vam omogućuju usporedbu nizova u C
Obje ove funkcije uključene su u biblioteku.
- strcmp () - Ova funkcija upoređuje dva niza i vraća uporednu razliku u broju znakova.
- strncmp () - Ovo je isto što i strcmp (), samo što upoređuje prvih n znakova. Smatra se sigurnijim jer sprječava prelijevanje rušenja.
Korak 2. Pokrenite program sa potrebnim bibliotekama
Trebat će vam i biblioteke i, zajedno sa bilo kojom drugom koja vam može zatrebati za vaš određeni program.
#include #include
Korak 3. Pokrenite an
int funkciju.
Ovo je najlakši način da naučite ovu funkciju jer će vratiti cijeli broj koji uspoređuje dužinu dva niza.
#include #include int main () {}
Korak 4. Definišite dva niza koja želite da uporedite
Za ovaj primjer, uspoređivat ćemo dva unaprijed definirana niza znakova. Također ćete htjeti definirati povratnu vrijednost kao cijeli broj.
#include #include int main () {char *str1 = "jabuka"; char *str2 = "narančasta"; int ret; }
Korak 5. Dodajte funkciju usporedbe
Sada kada ste definirali svoja dva niza, možete dodati funkciju usporedbe. Koristit ćemo strncmp (), stoga moramo osigurati da je broj znakova za mjerenje postavljen u funkciji.
#include #include int main () {char *str1 = "jabuka"; char *str2 = "narančasta"; int ret; ret = strncmp (str1, str2, 6); / *Ovo će uporediti dva niza duga do 6 znakova */}
Korak 6. Koristite an
Ako… U suprotnom izjavu za izvođenje poređenja.
Sada kada imate funkciju na mjestu, možete koristiti naredbu If … Else za prikaz koji je niz duži. strncmp () će vratiti 0 ako su nizovi iste dužine, pozitivan broj ako je str1 veći i negativan broj ako je str2 veći.
#include #include int main () {char *str1 = "jabuka"; char *str2 = "narančasta"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 je duži"); } else if (ret <0) {printf ("str2 je duži"); } else {printf ("Dva niza su jednaka"); } return (0); }