Kuinka verrata kahta merkkijonoa C -ohjelmointikielellä

Kirjoittaja: William Ramirez
Luomispäivä: 18 Syyskuu 2021
Päivityspäivä: 1 Heinäkuu 2024
Anonim
Michael Klim on breaking world records, training with Gennadi Touretski
Video: Michael Klim on breaking world records, training with Gennadi Touretski

Sisältö

C -koodissa on melko yleistä verrata merkkijonojen pituuksia selvittääkseen, mikä merkkijono sisältää enemmän merkkejä. Tämä on hyödyllistä tietojen lajittelussa. Merkkijonojen vertailuun tarvitaan erityistoiminto - älä käytä != tai ==.

Askeleet

  1. 1 C -ohjelmointikieli sisältää kaksi toimintoa, joiden avulla voit verrata merkkijonojen pituuksia. Molemmat toiminnot sisältyvät kirjastoon merkkijono. h>.
    • strcmp () - Tämä toiminto vertaa kahta merkkijonoa ja palauttaa merkkien määrän erotuksen.
    • strncmp () - tämä toiminto on sama kuin strcmp () paitsi että ensimmäinen n merkkiä. Sitä pidetään turvallisempana, koska se välttää ylivuotovirheet.
  2. 2 Käynnistä ohjelma tarvittavilla kirjastoilla. Tarvitset kirjastoja stdio.h> ja merkkijono. h>samoin kuin muut ohjelmasi edellyttämät kirjastot.

    #include stdio.h> #include string.h>

  3. 3 Syötä toiminto int. Se palauttaa kokonaisluvun kahden merkkijonon pituuden vertailun tuloksena.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Määritä kaksi merkkijonoa, joita haluat verrata. Esimerkissämme verrataan kahta tyyppiä hiiltyä... Määritä myös palautusarvo kokonaislukuna.

    #include stdio.h> #include string.h> int main () {char * str1 = "omena"; char * str2 = "oranssi"; int ret; }

  5. 5 Anna vertailutoiminto. Esimerkissämme käytämme toimintoa strncmp ()... Siinä sinun on asetettava mitattujen merkkien määrä.

    #include stdio.h> #include string.h> int main () {char * str1 = "omena"; char * str2 = "oranssi"; int ret; ret = strncmp (str1, str2, 8); / * Vertaa kahta merkkijonoa, joiden pituus on enintään 8 merkkiä * /}

  6. 6 Kirjoita ehdollinen lauseke Jos... Muuten. Sitä tarvitaan osoittamaan, mikä rivi on pidempi. Toiminto strncmp () palauttaa numeron 0jos merkkijonojen pituudet ovat samat, positiivinen luku, jos str1 on pidempi, ja negatiivinen luku, jos str2 on pidempi.

    #include stdio.h> #include string.h> int main () {char * str1 = "omena"; char * str2 = "oranssi"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 on pidempi"); } else if (ret 0) {printf ("str2 on pidempi"); } else {printf ("Rivinpituudet ovat yhtä suuret"); } paluu (0); }

Varoitukset

  • Muista, että jos merkkijonojen pituudet ovat yhtä suuret, arvo palautetaan 0. Tämä voi olla hämmentävää, koska myös 0 on EPÄTOSI.