Styginių ilgių palyginimas yra dažniausiai naudojama C programavimo funkcija, nes ji gali pasakyti, kuri eilutė turi daugiau simbolių. Ši funkcija labai naudinga rūšiuojant duomenis. Lyginant stygas reikia specialios funkcijos; nenaudokite! = arba ==.
Žingsnis
Žingsnis 1. Yra 2 tipų funkcijos, kurias galite naudoti, norėdami palyginti eilutes C kalba
Abi šios funkcijos yra įtrauktos į biblioteką.
- strcmp (): Ši funkcija lygina dvi eilutes ir grąžina simbolių skaičiaus palyginimo rezultatą.
- strncmp (): Ši funkcija yra tokia pati kaip strcmp (), išskyrus tai, kad ji lygina pirmuosius n} simbolius eilutėje. Ši funkcija laikoma saugesne, nes neleidžia programai užstrigti dėl perkrovos.
Žingsnis 2. Paleiskite programą su reikalingomis bibliotekomis
Rekomenduojame paleisti ir kartu su kitomis bibliotekomis, kurių reikia konkrečiai programai.
#įtraukti #įtraukti
Žingsnis 3. Paleiskite funkciją
tarpt. Tai lengviausias būdas išmokti šios funkcijos, nes ji grąžina sveiką skaičių, lyginant simbolių skaičių dviejose eilutėse.
#include #include int main () {}
Žingsnis 4. Apibrėžkite dvi eilutes, kurias norite palyginti
Pvz., Palyginsime 2 ankstesnio tipo char duomenų eilutes. Taip pat galite apibrėžti šios funkcijos grąžintą reikšmę, kad duomenų tipas būtų sveikasis skaičius.
#include #include int main () {char *str1 = "obuolys"; char *str2 = "oranžinė"; int ret; }
5 veiksmas. Pridėkite palyginimo funkciją
Apibrėžę šias dvi eilutes, galite pridėti palyginimo funkciją. Mes naudosime strncmp (), todėl turėsime įsitikinti, kad funkcijoje nustatytas matuojamų simbolių skaičius.
#include #include int main () {char *str1 = "obuolys"; char *str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 6); / *Ši funkcija palygins abi 6 simbolių „eilutes“*/}
Žingsnis 6. Naudokite teiginius
Jei … Kitu atveju atlikite palyginimą. Pridėję funkciją prie savo programos, galite naudoti teiginį, kad būtų parodyta, kuri eilutė turi daugiau simbolių. strncmp () grąžins 0, jei eilutės turi tą patį simbolių skaičių, teigiamas skaičius, jei str1 yra ilgesnis, ir neigiamas skaičius, jei str2 yra ilgesnis.
#include #include int main () {char *str1 = "obuolys"; char *str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 ilgesnis"); } else if (ret <0) {printf ("str2 yra ilgesnis"); } else {printf ("Abi eilutės yra vienodo ilgio"); } return (0); }