Porovnávanie dĺžok reťazcov je v programovaní C bežne používanou funkciou, pretože vám môže napovedať, ktorý reťazec má viac znakov. Táto funkcia je veľmi užitočná pri triedení údajov. Porovnávanie reťazcov vyžaduje špeciálnu funkciu; nepoužívajte! = alebo ==.
Krok
Krok 1. Existujú 2 typy funkcií, ktoré môžete použiť na porovnanie reťazcov v jazyku C
Obe tieto funkcie sú zahrnuté v knižnici.
- strcmp (): Táto funkcia porovnáva dva reťazce a vracia výsledok porovnaním počtu znakov medzi nimi.
- strncmp (): Táto funkcia je rovnaká ako strcmp (), ibaže porovnáva prvých n} znakov v reťazci. Táto funkcia sa považuje za bezpečnejšiu, pretože zabraňuje zastaveniu programu v dôsledku preťaženia.
Krok 2. Spustite program s potrebnými knižnicami
Odporúčame vám spustiť a spolu s akýmikoľvek inými knižnicami, ktoré pre konkrétny program potrebujete.
#include #include
Krok 3. Spustite funkciu
int. Toto je najľahší spôsob, ako sa naučiť túto funkciu, pretože vracia celočíselnú hodnotu porovnania počtu znakov v dvoch reťazcoch.
#include #include int main () {}
Krok 4. Definujte dva reťazce, ktoré chcete porovnať
Porovnáme napríklad 2 reťazce údajov typu char, ktoré boli definované skôr. Môžete tiež definovať hodnotu vrátenú touto funkciou, aby mala dátový typ celé číslo.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; }
Krok 5. Pridajte porovnávaciu funkciu
Keď definujete tieto dva reťazce, môžete pridať funkciu porovnávania. Budeme používať strncmp (), takže sa budeme musieť uistiť, že je vo funkcii nastavený počet znakov na meranie.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 6); / *Táto funkcia porovná oba '' reťazce '' po 6 znakoch */}
Krok 6. Používajte vyhlásenia
Ak … Inak urobte porovnanie. Po pridaní funkcie do programu môžete pomocou príkazu zobraziť, ktorý reťazec má viac znakov. strncmp () vráti 0, ak reťazce majú rovnaký počet znakov, kladné číslo, ak je str1 dlhšie a záporné číslo, ak je reťazec dlhší.
#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 („Oba reťazce sú rovnako dlhé“); } návrat (0); }