Ako porovnať dva reťazce v programovacom jazyku C.

Autor: William Ramirez
Dátum Stvorenia: 18 September 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
C_68 C program to Compare two Strings | with strcmp() and without strcmp() function
Video: C_68 C program to Compare two Strings | with strcmp() and without strcmp() function

Obsah

V kóde C je úplne bežné porovnávať dĺžky reťazcov a zistiť, ktorý reťazec obsahuje viac znakov. Je to užitočné pri triedení údajov. Na porovnanie reťazcov je potrebná špeciálna funkcia - nepoužívajte != alebo ==.

Kroky

  1. 1 Programovací jazyk C obsahuje dve funkcie, ktoré môžete použiť na porovnanie dĺžok reťazcov. Obe tieto funkcie sú zahrnuté v knižnici string.h>.
    • strcmp () - táto funkcia porovná dva reťazce a vráti rozdiel v počte znakov.
    • strncmp () - táto funkcia je rovnaká ako strcmp () okrem toho prvého n postavy. Považuje sa za bezpečnejší, pretože zabraňuje poruchám pri pretečení.
  2. 2 Spustite program s požadovanými knižnicami. Budete potrebovať knižnice stdio.h> a string.h>ako aj všetky ostatné knižnice požadované pre váš konkrétny program.

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

  3. 3 Zadajte funkciu int. Vráti celé číslo ako výsledok porovnania dĺžky dvoch reťazcov.

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

  4. 4 Identifikujte dva reťazce, ktoré chcete porovnať. V našom prípade porovnajme dva reťazce typu char... Návratovú hodnotu definujte aj ako celé číslo.

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

  5. 5 Zadajte porovnávaciu funkciu. V našom prípade použijeme funkciu strncmp ()... V ňom musíte nastaviť počet meraných znakov.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 8); / * Porovnáva dva reťazce dlhé až 8 znakov * /}

  6. 6 Zadajte podmienené vyhlásenie Ak... Inak. Je potrebné ukázať, ktorý riadok je dlhší. Funkcia strncmp () vráti číslo 0ak sú dĺžky reťazcov rovnaké, kladné číslo, ak je str1 dlhší, a záporné číslo, ak je str2 dlhší.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 je dlhsi"); } else if (ret 0) {printf ("str2 je dlhsi"); } else {printf ("Dlžky riadkov sú rovnaké"); } návrat (0); }

Varovania

  • Nezabudnite, že ak sú dĺžky reťazcov rovnaké, vráti sa hodnota 0. To môže byť mätúce, pretože 0 je tiež NEPRAVDA.