Primerjava dolžin nizov je običajno uporabljena funkcija v programiranju C, saj vam lahko pove, kateri niz ima več znakov. Ta funkcija je zelo uporabna pri razvrščanju podatkov. Primerjava nizov zahteva posebno funkcijo; ne uporabljajte! = ali ==.
Korak
Korak 1. Obstajata 2 vrsti funkcij, ki ju lahko uporabite za primerjavo nizov v jeziku C
Obe funkciji sta vključeni v knjižnico.
- strcmp (): Ta funkcija primerja dva niza in vrne rezultat primerjave števila znakov med njima.
- strncmp (): Ta funkcija je enaka strcmp (), le da primerja prvih n} znakov v nizu. Ta funkcija velja za varnejšo, ker preprečuje zaustavitev programa zaradi preobremenitve.
Korak 2. Zaženite program s knjižnicami, ki jih potrebujete
Priporočamo, da zaženete in skupaj z vsemi drugimi knjižnicami, ki jih potrebujete za določen program.
#include #include
Korak 3. Zaženite funkcijo
int. To je najlažji način, da se naučite te funkcije, ker vrne celoštevilčno vrednost primerjave števila znakov v dveh nizih.
#include #include int main () {}
Korak 4. Določite dva niza, ki jih želite primerjati
Primerjali bomo na primer 2 niza podatkov tipa char, ki sta bila definirana prej. Določite lahko tudi vrednost, ki jo ta funkcija vrne, da ima podatkovni tip celo število.
#include #include int main () {char *str1 = "jabolko"; char *str2 = "oranžna"; int ret; }
Korak 5. Dodajte primerjalno funkcijo
Ko določite ta dva niza, lahko dodate primerjalno funkcijo. Uporabljali bomo strncmp (), zato se moramo prepričati, da je v funkciji nastavljeno število merjenih znakov.
#include #include int main () {char *str1 = "jabolko"; char *str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 6); / *Ta funkcija bo primerjala oba '' niza '' po 6 znakov */}
Korak 6. Uporabite stavke
Če … Drugače narediti primerjavo. Ko v program dodate funkcijo, lahko z izjavo prikažete, kateri niz ima več znakov. strncmp () bo vrnil 0, če imajo nizi enako število znakov, pozitivno število, če je str1 daljše, in negativno število, če je str2 daljše.
#include #include int main () {char *str1 = "jabolko"; char *str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 je daljši"); } else if (ret <0) {printf ("str2 je daljši"); } else {printf ("Oba niza sta enake dolžine"); } return (0); }