Turinys
Stygų ilgio palyginimas yra dažniausiai naudojama funkcija C programavimo kalboje, nes tai leidžia sužinoti, kurioje eilutėje yra daugiau simbolių. Tai labai naudinga rūšiuojant duomenis. Stygų palyginimui reikalinga speciali funkcija; todėl nenaudokite: != arba ==.
Žengti
- Yra dvi funkcijos, leidžiančios palyginti C eilutes. Abi yra įtrauktos į eilutė.h>kodų biblioteka.
- strcmp () - Ši funkcija palygina dvi eilutes ir pateikia simbolių skaičiaus skirtumą.
- strncmp () - Tai taip pat taikoma strcmp (), išskyrus tai, kad šis yra pirmasis n lygina simbolius. Jis laikomas saugesniu, nes padeda išvengti perpildymo gedimų.
- Paleiskite programą su reikalingomis bibliotekomis. Turite abi bibliotekas stdio.h> ir eilutė.h> reikalingos kartu su kitomis bibliotekomis, kurių jums gali prireikti jūsų programai.
#include stdio.h> [[Vaizdas: palyginkite dvi eilutes C programavimo 1 veiksmo versijoje 4.webp | centre]] #include string.h>
- Pradėkite vieną.tarptfunkcija. Tai lengviausias būdas išmokti šią funkciją, nes ji pateikia sveiką skaičių, lyginantį dviejų eilučių ilgį.
[[Paveikslėlis: Palyginkite dvi programavimo C eilutes 2 versijos versijas 4.webp | centre]] #include stdio.h> [[Vaizdas: palyginkite dvi C programavimo 3 eilutės versijų 3. versijos versijas 3.webp | centre]] #include string. h> int main () {}
- Nuspręskite, kurias dvi eilutes norite palyginti. Šiame pavyzdyje palyginame du duomenis char stygos. Taip pat turite nustatyti grąžinimo vertę kaip sveikąjį skaičių.
[[Paveikslėlis: Palyginkite dvi programavimo C eilutes 4 versijos 4 versijos 4.webp | centre]] #include stdio.h> [[Image: Palyginkite dvi C programavimo 5 eilutės 4 versijos versijas 4.webp | centre]] #include string. h> int main () {char * str1 = "obuolys"; char * str2 = "oranžinė"; int ret;}
- Pridėti palyginimo funkciją. Dabar, kai apibrėžėte dvi eilutes, galite pridėti palyginimo funkciją. Mes einame strncmp () todėl turime įsitikinti, kad funkcijoje yra nustatytas matuojamų simbolių skaičius.
[[Paveikslėlis: palyginkite dvi C programavimo žingsnio 6 versijos versijas 4.webp | centre]]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 11); / * Palygina dvi eilutes iki 11 simbolių * /}
- Naudokite.Jei ... Kitaipatlikti palyginimą. Dabar, kai sukūrėme funkciją, naudokite Jei ... Kitaip nustatyti, kuri eilutė ilgesnė. strncmp () duoda 0 Dėl to, jei eilutės yra vienodo ilgio, teigiamas skaičius, jei str1 yra ilgesnis, ir neigiamas skaičius, jei str2 yra ilgesnis.
#include stdio.h> #include string.h> int main () {char * str1 = "obuolys"; char * str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 11); if (ret> 0) {printf ("str1 yra ilgesnis"); } else if (ret 0) {printf ("str2 yra ilgesnis"); } else {printf ("Dvi eilutės yra vienodos"); } grįžti (0); }
Įspėjimai
- Atminkite, kad grąžinimo vertė yra 0, jei eilutės yra lygios. Tai gali būti painu, nes 0 taip pat yra FALSE reikšmė.