Kuidas võrrelda kahte stringi C programmeerimiskeeles

Autor: William Ramirez
Loomise Kuupäev: 18 September 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Kuidas võrrelda kahte stringi C programmeerimiskeeles - Ühiskond
Kuidas võrrelda kahte stringi C programmeerimiskeeles - Ühiskond

Sisu

C -koodis on üsna tavaline stringide pikkuste võrdlemine, et teada saada, milline string sisaldab rohkem märke. See on kasulik andmete sortimiseks. Stringide võrdlemiseks on vaja spetsiaalset funktsiooni - ärge kasutage != või ==.

Sammud

  1. 1 Programmeerimiskeel C sisaldab kahte funktsiooni, mida saate kasutada stringide pikkuste võrdlemiseks. Mõlemad funktsioonid on raamatukogus olemas string.h>.
    • strcmp () - see funktsioon võrdleb kahte stringi ja tagastab tähemärkide arvu erinevuse.
    • strncmp () - see funktsioon on sama mis strcmp () ainult et esimene n tegelased. Seda peetakse turvalisemaks, kuna see väldib ülevoolu tõrkeid.
  2. 2 Käivitage programm vajalike teekidega. Te vajate raamatukogusid stdio.h> ja string.h>samuti mis tahes muud teie konkreetse programmi jaoks vajalikud teegid.

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

  3. 3 Sisestage funktsioon int. See tagastab kahe stringi pikkuse võrdlemise tulemusena täisarvu.

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

  4. 4 Tuvastage kaks stringi, mida soovite võrrelda. Meie näites võrdleme kahte tüüpi stringe süsi... Määrake ka tagastusväärtus täisarvuna.

    #include stdio.h> #include string.h> int main () {char * str1 = "õun"; char * str2 = "oranž"; int ret; }

  5. 5 Sisestage võrdlusfunktsioon. Meie näites kasutame seda funktsiooni strncmp ()... Selles peate määrama mõõdetud märkide arvu.

    #include stdio.h> #include string.h> int main () {char * str1 = "õun"; char * str2 = "oranž"; int ret; ret = strncmp (str1, str2, 8); / * Võrdleb kahte kuni 8 tähemärgi pikkust stringi * /}

  6. 6 Sisestage tingimuslause Kui... Muidu. Seda on vaja näidata, milline rida on pikem. Funktsioon strncmp () tagastab numbri 0kui stringide pikkused on samad, positiivne arv, kui str1 on pikem, ja negatiivne arv, kui str2 on pikem.

    #include stdio.h> #include string.h> int main () {char * str1 = "õun"; char * str2 = "oranž"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 on pikem"); } else if (ret 0) {printf ("str2 on pikem"); } else {printf ("Rea pikkused on võrdsed"); } tagasitulek (0); }

Hoiatused

  • Pidage meeles, et kui stringide pikkused on võrdsed, tagastatakse väärtus 0. See võib olla segane, sest ka 0 on VÄÄR.