Kuidas võrrelda kahte stringi C-programmeerimises

Stringi pikkuse võrdlemine on C-programmeerimises tavaline funktsioon, kuna see võimaldab näha, milline string sisaldab rohkem märke. See on andmete sortimisel väga kasulik. Stringide võrdlemine nõuab erifunktsiooni; ära kasuta != või ==.

1
On kaks funktsiooni, mis võimaldavad teil C-s stringe võrrelda. Mõlemad funktsioonid sisalduvad teegis .strcmp() – see funktsioon võrdleb kahte stringi ja tagastab märkide arvu võrdleva erinevuse.strncmp( ) – see on sama mis strcmp(), välja arvatud see, et see võrdleb esimest n märki. Seda peetakse turvalisemaks, kuna see aitab vältida kokkujooksmisi ülevoolust.

2
Käivitage programm vajalike raamatukogudega. Teil on vaja nii teeke kui ka ning muid, mida oma konkreetse programmi jaoks vajate.#include #include

3
Käivitage funktsioon .int. See on lihtsaim viis selle funktsiooni õppimiseks, kuna see tagastab täisarvu, mis võrdleb kahe stringi pikkust.#include #include int main (){}

4
Määratlege kaks stringi, mida soovite võrrelda. Selle näite puhul võrdleme kahte eelmääratletud märgistringi. Samuti soovite määrata tagastusväärtuse täisarvuna.#include #include int main (){ char *str1 = “apple”; char *str2 = “oranž”; int ret;}

5
Lisage võrdlusfunktsioon. Nüüd, kui olete oma kaks stringi määratlenud, saate lisada võrdlusfunktsiooni. Me kavatseme kasutada strncmp(), seega peame tagama, et mõõdetavate märkide arv oleks funktsioonis määratud.#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 */}

6
Võrdluse läbiviimiseks kasutage lauset .If…Else. Nüüd, kui funktsioon on paigas, saate käsu If…Else abil kuvada, milline string on pikem. strncmp() tagastab 0, kui stringid on sama pikkusega, positiivse arvu, kui str1 on suurem, ja negatiivse arvu, 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"); } return(0);}