Stringipikkuse võrdlemine on C programmeerimisel tavaline funktsioon, kuna see võimaldab näha, milline string sisaldab rohkem märke. See on väga kasulik andmete sortimiseks. Stringide võrdlemine nõuab erifunktsiooni; ära kasuta! = või ==.
Sammud
Samm 1. On kaks funktsiooni, mis võimaldavad teil võrrelda stringe C -s
Mõlemad funktsioonid on raamatukogus olemas.
- strcmp () - see funktsioon võrdleb kahte stringi ja tagastab märgide arvu võrdleva erinevuse.
- strncmp () - see on sama mis strcmp (), ainult et see võrdleb esimest n tähemärki. Seda peetakse turvalisemaks, kuna see aitab vältida krahhide ületäitumist.
Samm 2. Käivitage programm vajalike teekidega
Soovite nii raamatukogusid kui ka kõiki teisi, mida vajate oma konkreetse programmi jaoks.
#kaasama #kaasama
Samm 3. Alustage
int funktsiooni.
See on lihtsaim viis selle funktsiooni õppimiseks, kuna see tagastab täisarvu, mis võrdleb kahe stringi pikkust.
#include #include int main () {}
Samm 4. Määratlege kaks stringi, mida soovite võrrelda
Selle näite puhul võrdleme kahte eelmääratletud sümbolit. Tagasiväärtuse soovite määratleda ka täisarvuna.
#include #include int main () {char *str1 = "õun"; char *str2 = "oranž"; int ret; }
Samm 5. Lisage võrdlusfunktsioon
Nüüd, kui olete kaks stringi määratlenud, saate lisada võrdlusfunktsiooni. Me kasutame strncmp (), seega peame tagama, et funktsioonis oleks määratud mõõdetavate märkide arv.
#include #include int main () {char *str1 = "õun"; char *str2 = "oranž"; int ret; ret = strncmp (str1, str2, 6); / *See võrdleb kahte kuni 6 tähemärgi pikkust stringi */}
Samm 6. Kasutage
Kui… muidu avaldus võrdluse tegemiseks.
Nüüd, kui funktsioon on paigas, saate kasutada lauset If… Else, et kuvada, milline string on pikem. strncmp () tagastab 0, kui stringid on sama pikkusega, positiivne arv, kui str1 on suurem, ja negatiivne arv, kui str2 on suurem.
#include #include int main () {char *str1 = "õun"; char *str2 = "oranž"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 on pikem"); } else if (ret <0) {printf ("str2 on pikem"); } else {printf ("Kaks stringi on võrdsed"); } tagasitulek (0); }