Comparați două șiruri în limbajul de programare C.

Autor: Judy Howell
Data Creației: 27 Iulie 2021
Data Actualizării: 10 Mai 2024
Anonim
Complexitatea algoritmilor
Video: Complexitatea algoritmilor

Conţinut

Compararea lungimii șirurilor este o funcție frecvent utilizată în limbajul de programare C, deoarece vă permite să aflați ce șir conține mai multe caractere. Acest lucru este foarte util pentru sortarea datelor. Compararea șirurilor necesită o funcție specială; deci nu folosiți: != sau ==.

A calca

  1. Există două funcții care vă permit să comparați șirurile în C. Ambele sunt incluse în string.h>bibliotecă de coduri.
    • strcmp () - Această funcție compară două șiruri și returnează diferența în numărul de caractere.
    • strncmp () - Acest lucru este valabil și pentru strcmp (), cu excepția faptului că acesta este primul n compară personaje. Este considerat mai sigur deoarece ajută la prevenirea blocărilor de revărsare.
  2. Rulați programul cu bibliotecile necesare. Aveți ambele biblioteci stdio.h> și string.h> necesare, împreună cu alte biblioteci de care este posibil să aveți nevoie pentru programul dvs.

    #include stdio.h> [[Image: Compare Two Strings in C Programming Step 1 Version 4.webp | center]] #include string.h>

  3. Începeți unul.intfuncţie. Acesta este cel mai simplu mod de a învăța această funcție, deoarece returnează un număr întreg comparând lungimea celor două șiruri.

    [[Image: Compare Two Strings in C Programming Step 2 Version 4.webp | center]] #include stdio.h> [[Image: Compare Two Strings in C Programming Step 3 Version 3.webp | center]] #include string. h> int main () {}

  4. Decideți ce două șiruri doriți să comparați. În acest exemplu, comparăm două date char siruri de caractere. De asemenea, trebuie să determinați valoarea returnată ca număr întreg.

    [[Image: Compare Two Strings in C Programming Step 4 Version 4.webp | center]] #include stdio.h> [[Image: Compare Two Strings in C Programming Step 5 Version 4.webp | center]] #include string. h> int main () {char * str1 = "măr"; char * str2 = "portocaliu"; int ret;}

  5. Adăugați funcția de comparare. Acum că ați definit două șiruri, puteți adăuga funcția de comparare. Noi mergem strncmp () deci trebuie să ne asigurăm că numărul de caractere de măsurat este setat în cadrul funcției.

    [[Image: Compare Two Strings in C Programming Step 6 Version 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; ret = strncmp (str1, str2, 11); / * Compară cele două șiruri de până la 11 caractere * /}

  6. Utilizare.Dacă ... Altfelpentru a efectua comparația. Acum că am creat funcția, utilizați Dacă ... Altfel pentru a determina care șir este mai lung. strncmp ()0 ca rezultat, dacă șirurile au aceeași lungime, un număr pozitiv dacă str1 este mai lung și un număr negativ dacă str2 este mai lung.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; ret = strncmp (str1, str2, 11); if (ret> 0) {printf ("str1 este mai lung"); } else if (ret 0) {printf ("str2 este mai lung"); } else {printf ("Cele două șiruri sunt aceleași"); } return (0); }

Avertizări

  • Amintiți-vă că valoarea returnată este 0 dacă șirurile sunt egale. Acest lucru poate fi confuz deoarece 0 este, de asemenea, valoarea FALSE.