Cum se compară două șiruri în limbajul de programare C.

Autor: William Ramirez
Data Creației: 18 Septembrie 2021
Data Actualizării: 1 Iulie 2024
Anonim
Tutorial de programare in limbajul C HD (limba romana): Alocarea dinamica a memoriei[#17]
Video: Tutorial de programare in limbajul C HD (limba romana): Alocarea dinamica a memoriei[#17]

Conţinut

Este destul de obișnuit în codul C să comparați lungimile șirurilor pentru a afla care șir conține mai multe caractere. Acest lucru este util pentru sortarea datelor. O funcție specială este necesară pentru a compara șirurile - nu utilizați != sau ==.

Pași

  1. 1 Limbajul de programare C include două funcții pe care le puteți utiliza pentru a compara lungimile șirurilor. Ambele funcții sunt incluse în bibliotecă string.h>.
    • strcmp () - această funcție compară două șiruri și returnează diferența în numărul de caractere.
    • strncmp () - această funcție este aceeași cu strcmp () cu excepția faptului că primul n personaje. Este considerat mai sigur deoarece evită eșecurile de revărsare.
  2. 2 Porniți programul cu bibliotecile necesare. Veți avea nevoie de biblioteci stdio.h> și string.h>precum și orice alte biblioteci necesare pentru programul dvs. specific.

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

  3. 3 Introduceți funcția int. Returnează un număr întreg ca rezultat al comparării lungimii a două șiruri.

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

  4. 4 Identificați cele două șiruri pe care doriți să le comparați. În exemplul nostru, să comparăm două șiruri de tip char... De asemenea, definiți valoarea returnată ca număr întreg.

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

  5. 5 Introduceți o funcție de comparație. În exemplul nostru, vom folosi funcția strncmp ()... În el trebuie să setați numărul de caractere măsurate.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; ret = strncmp (str1, str2, 8); / * Compară două șiruri de până la 8 caractere * /}

  6. 6 Introduceți o declarație condiționată Dacă... Altfel. Este necesar pentru a arăta care linie este mai lungă. Funcţie strncmp () va returna numărul 0dacă lungimile șirurilor sunt aceleași, 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, 8); if (ret> 0) {printf ("str1 este mai lung"); } else if (ret 0) {printf ("str2 este mai lung"); } else {printf ("Lungimile liniei sunt egale"); } return (0); }

Avertizări

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