Primerjava dolžine niza je običajna funkcija v programiranju C, saj vam omogoča, da vidite, kateri niz vsebuje več znakov. To je zelo uporabno za razvrščanje podatkov. Primerjava nizov zahteva posebno funkcijo; ne uporabljajte! = ali ==.
Koraki
Korak 1. Obstajata dve funkciji, ki vam omogočata primerjavo nizov v C
Obe funkciji sta vključeni v knjižnico.
- strcmp () - Ta funkcija primerja dva niza in vrne primerjalno razliko v številu znakov.
- strncmp () - To je isto kot strcmp (), le da primerja prvih n znakov. Velja za bolj varno, saj preprečuje prelivanje zrušitev.
Korak 2. Zaženite program s potrebnimi knjižnicami
Potrebovali boste tako knjižnice kot tudi vse druge, ki jih boste morda potrebovali za svoj poseben program.
#include #include
Korak 3. Zaženite
int funkcijo.
To je najlažji način, da se naučite te funkcije, saj bo vrnila celo število, ki primerja dolžino obeh nizov.
#include #include int main () {}
Korak 4. Določite dva niza, ki jih želite primerjati
V tem primeru bomo primerjali dva vnaprej določena niza znakov. Prav tako boste želeli definirati vrnjeno vrednost kot celo število.
#include #include int main () {char *str1 = "jabolko"; char *str2 = "oranžna"; int ret; }
Korak 5. Dodajte primerjalno funkcijo
Zdaj, ko imate definirana dva niza, lahko dodate primerjalno funkcijo. Uporabili bomo strncmp (), zato moramo zagotoviti, da je število znakov za merjenje nastavljeno v funkciji.
#include #include int main () {char *str1 = "jabolko"; char *str2 = "oranžna"; int ret; ret = strncmp (str1, str2, 6); / *To bo primerjalo dva niza dolga do 6 znakov */}
Korak 6. Uporabite an
Če potem izjavo za izvedbo primerjave.
Zdaj, ko imate funkcijo nameščeno, lahko uporabite stavek If … Else za prikaz, kateri niz je daljši. strncmp () bo vrnil 0, če so nize enake dolžine, pozitivno število, če je str1 večje, in negativno število, če je str2 večje.
#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 ("Dva niza sta enaka"); } return (0); }