Porovnajte dva reťazce v programovacom jazyku C.

Autor: Judy Howell
Dátum Stvorenia: 27 V Júli 2021
Dátum Aktualizácie: 10 Smieť 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

Porovnanie dĺžky reťazca je v programovacom jazyku C bežne používanou funkciou, pretože vám umožňuje zistiť, ktorý reťazec obsahuje viac znakov. To je veľmi užitočné na triedenie údajov. Porovnanie reťazcov vyžaduje špeciálnu funkciu; tak nepoužívaj: != alebo ==.

Na krok

  1. Existujú dve funkcie, ktoré vám umožňujú porovnať reťazce v C. Oba sú zahrnuté v string.h>knižnica kódov.
    • strcmp () - Táto funkcia porovnáva dva reťazce a vracia rozdiel v počte znakov.
    • strncmp () - To platí aj pre strcmp (), až na to, že tento je prvý n porovnáva znaky. Považuje sa za bezpečnejšiu, pretože pomáha predchádzať haváriám pri pretečení.
  2. Spustite program s potrebnými knižnicami. Máte obe knižnice stdio.h> a string.h> spolu s ďalšími knižnicami, ktoré môžete pre svoj program potrebovať.

    #include stdio.h> [[Obrázok: Porovnanie dvoch reťazcov v programovaní C, krok 1, verzia 4.webp | stred]] #include string.h>

  3. Začnite jeden.intfunkcia. Toto je najjednoduchší spôsob, ako sa túto funkciu naučiť, pretože vracia celé číslo porovnaním dĺžky dvoch reťazcov.

    [[Obrázok: Porovnanie dvoch reťazcov v programovaní C, krok 2, verzia 4.webp | stred]] #include stdio.h> [[Obrázok: porovnanie dvoch reťazcov v programovaní C, krok 3, verzia 3.webp | stred]] #include string. h> int main () {}

  4. Rozhodnite sa, ktoré dva reťazce chcete porovnať. V tomto príklade porovnávame dva údaje char struny. Musíte tiež určiť návratnú hodnotu ako celé číslo.

    [[Obrázok: Porovnanie dvoch reťazcov v programovaní C, krok 4, verzia 4.webp | stred]] #include stdio.h> [[Obrázok: porovnanie dvoch reťazcov v programovaní C, krok 4. verzia 4.webp | stred]] #include string. h> int main () {char * str1 = "jablko"; char * str2 = "oranžová"; int ret;}

  5. Pridajte funkciu porovnania. Teraz, keď ste definovali dva reťazce, môžete pridať funkciu porovnania. Ideme strncmp () takže sa musíme uistiť, že je vo funkcii nastavený počet znakov, ktoré sa majú merať.

    [[Obrázok: Porovnanie dvoch reťazcov v programovaní C, krok 6, verzia 4.webp | stred]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 11); / * Porovnáva dva reťazce až do dĺžky 11 znakov * /}

  6. Použite.Keby ... Inakvykonať porovnanie. Teraz, keď sme vytvorili túto funkciu, použite Keby ... Inak určiť, ktorý reťazec je dlhší. strncmp () dáva 0 vo výsledku, ak sú reťazce rovnako dlhé, 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, 11); if (ret> 0) {printf ("str1 je dlhsi"); } else if (ret 0) {printf ("str2 je dlhsi"); } else {printf ("Dva reťazce sú rovnaké"); } návrat (0); }

Varovania

  • Pamätajte, že návratová hodnota je 0, ak sú reťazce rovnaké. To môže byť mätúce, pretože 0 je tiež hodnota FALSE.