Usporedba duljine 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. Usporedba nizova zahtijeva posebnu funkciju; nemojte koristiti! = ili ==.
Koraci
Korak 1. Postoje dvije funkcije koje vam omogućuju usporedbu nizova u C
Obje ove funkcije uključene su u knjižnicu.
- strcmp () - Ova funkcija uspoređuje dva niza i vraća usporednu razliku u broju znakova.
- strncmp () - Ovo je isto što i strcmp (), samo što uspoređuje prvih n znakova. Smatra se sigurnijim jer sprječava prelijevanje rušenja.
Korak 2. Pokrenite program sa potrebnim knjižnicama
Trebat ćete i biblioteke i, zajedno sa svim ostalim koje vam mogu zatrebati za vaš određeni program.
#include #include
Korak 3. Pokrenite an
int funkcija.
Ovo je najlakši način da naučite ovu funkciju jer će vratiti cijeli broj koji uspoređuje duljinu dva niza.
#include #include int main () {}
Korak 4. Definirajte dva niza koja želite usporediti
U ovom primjeru 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 usporediti dva niza do 6 znakova */}
Korak 6. Upotrijebite an
Ako … Inače izjavu za usporedbu.
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 duljine, 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 dulji"); } else if (ret <0) {printf ("str2 je duži"); } else {printf ("Dva niza su jednaka"); } return (0); }