Merkkijonon pituuden vertailu on yleinen toiminto C -ohjelmoinnissa, koska sen avulla voit nähdä, mikä merkkijono sisältää enemmän merkkejä. Tämä on erittäin hyödyllistä tietojen lajittelussa. Jousien vertailu vaatii erityistoiminnon; älä käytä! = tai ==.
Askeleet
Vaihe 1. On kaksi toimintoa, joiden avulla voit verrata merkkijonoja C
Molemmat toiminnot sisältyvät kirjastoon.
- strcmp () - Tämä toiminto vertaa kahta merkkijonoa ja palauttaa merkkien lukumäärän vertailevan eron.
- strncmp () - Tämä on sama kuin strcmp (), paitsi että se vertaa ensimmäistä n merkkiä. Sitä pidetään turvallisempana, koska se auttaa estämään kaatumisia ylivuotoa.
Vaihe 2. Käynnistä ohjelma tarvittavilla kirjastoilla
Haluat sekä ja että kirjastot yhdessä muiden ohjelmasi kanssa mahdollisesti tarvittavien kanssa.
#Sisällytä #Sisällytä
Vaihe 3. Aloita
int toiminto.
Tämä on helpoin tapa oppia tämä toiminto, koska se palauttaa kokonaisluvun, joka vertaa kahden merkkijonon pituutta.
#include #include int main () {}
Vaihe 4. Määritä kaksi merkkijonoa, joita haluat verrata
Tässä esimerkissä vertaamme kahta ennalta määritettyä merkkijonoa. Haluat myös määrittää palautusarvon kokonaislukuna.
#include #include int main () {char *str1 = "omena"; char *str2 = "oranssi"; int ret; }
Vaihe 5. Lisää vertailutoiminto
Nyt kun olet määrittänyt kaksi merkkijonoa, voit lisätä vertailutoiminnon. Käytämme strncmp (): tä, joten meidän on varmistettava, että mitattavien merkkien määrä on asetettu funktiossa.
#include #include int main () {char *str1 = "omena"; char *str2 = "oranssi"; int ret; ret = strncmp (str1, str2, 6); / *Tämä vertaa kahta enintään 6 merkin pituista merkkijonoa */}
Vaihe 6. Käytä
Tai muuten lausunto vertailun suorittamiseksi.
Nyt kun toiminto on käytössä, voit näyttää If… Else -lausekkeen avulla, mikä merkkijono on pidempi. strncmp () palauttaa arvon 0, jos merkkijonot ovat yhtä pitkiä, positiivisen luvun, jos str1 on suurempi, ja negatiivisen luvun, jos str2 on suurempi.
#include #include int main () {char *str1 = "omena"; char *str2 = "oranssi"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 on pidempi"); } else if (ret <0) {printf ("str2 on pidempi"); } else {printf ("Kaksi merkkijonoa ovat yhtä suuret"); } paluu (0); }