Porovnanie dĺžky reťazca je bežnou funkciou v programovaní v jazyku C, pretože vám umožňuje zistiť, ktorý reťazec obsahuje viac znakov. To je veľmi užitočné pri triedení údajov. Porovnávanie reťazcov vyžaduje špeciálnu funkciu; nepoužívajte! = alebo ==.
Kroky
Krok 1. Existujú dve funkcie, ktoré vám umožňujú porovnať reťazce v jazyku C
Obe tieto funkcie sú zahrnuté v knižnici.
- strcmp () - Táto funkcia porovnáva dva reťazce a vracia porovnávací rozdiel v počte znakov.
- strncmp () - Je to rovnaké ako strcmp (), okrem toho, že porovnáva prvých n znakov. Považuje sa za bezpečnejší, pretože pomáha predchádzať pretečeniu v dôsledku pretečenia.
Krok 2. Spustite program s potrebnými knižnicami
Budete chcieť knižnice a, ako aj ďalšie potrebné pre váš konkrétny program.
#include #include
Krok 3. Začnite s
int funkciu.
Toto je najľahší spôsob, ako sa naučiť túto funkciu, pretože vráti celé číslo, ktoré porovná dĺžku dvoch reťazcov.
#include #include int main () {}
Krok 4. Definujte dva reťazce, ktoré chcete porovnať
V tomto prípade budeme porovnávať dva preddefinované reťazce znakov. Návratovú hodnotu budete tiež chcieť definovať ako celé číslo.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; }
Krok 5. Pridajte porovnávaciu funkciu
Teraz, keď máte definované dva reťazce, môžete pridať funkciu porovnávania. Budeme používať strncmp (), takže musíme zaistiť, aby bol vo funkcii nastavený počet znakov, ktoré sa majú merať.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 6); / *Tým sa porovnajú dva reťazce dlhé až 6 znakov */}
Krok 6. Použite príkaz
Ak … Inak vyhlásenie na vykonanie porovnania.
Teraz, keď máte túto funkciu zavedenú, môžete pomocou príkazu If … Else zobraziť, ktorý reťazec je dlhší. strncmp () vráti 0, ak sú reťazce rovnako dlhé, kladné číslo, ak je str1 väčšie a záporné číslo, ak je str2 väčšie.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 6); 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); }