Porovnání délek řetězců je běžně používanou funkcí v programování v jazyce C, protože vám může říci, který řetězec má více znaků. Tato funkce je velmi užitečná při třídění dat. Porovnání řetězců vyžaduje speciální funkci; nepoužívejte! = nebo ==.
Krok
Krok 1. Existují 2 typy funkcí, které můžete použít k porovnání řetězců v jazyce C
Obě tyto funkce jsou součástí knihovny.
- strcmp (): Tato funkce porovnává dva řetězce a vrací výsledek porovnání počtu znaků mezi nimi.
- strncmp (): Tato funkce je stejná jako strcmp (), kromě toho porovnává prvních n} znaků v řetězci. Tato funkce je považována za bezpečnější, protože brání zastavení programu v důsledku přetížení.
Krok 2. Spusťte program s knihovnami, které potřebujete
Doporučujeme spustit a spolu s dalšími knihovnami, které pro konkrétní program potřebujete.
#include #include
Krok 3. Spusťte funkci
int. Toto je nejjednodušší způsob, jak se tuto funkci naučit, protože vrací celočíselnou hodnotu porovnání počtu znaků ve dvou řetězcích.
#include #include int main () {}
Krok 4. Definujte dva řetězce, které chcete porovnat
Například porovnáme 2 řetězce dat typu char, která byla definována dříve. Můžete také definovat hodnotu vrácenou touto funkcí, aby měla datový typ celé číslo.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; }
Krok 5. Přidejte funkci porovnání
Jakmile definujete tyto dva řetězce, můžete přidat funkci porovnání. Budeme používat strncmp (), takže se musíme ujistit, že je ve funkci nastaven počet znaků k měření.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 6); / *Tato funkce porovná oba '' řetězce '' po 6 znacích */}
Krok 6. Použijte prohlášení
Pokud … Jinak provést srovnání. Po přidání funkce do programu můžete pomocí příkazu zobrazit, který řetězec má více znaků. strncmp () vrátí 0, pokud řetězce mají stejný počet znaků, kladné číslo, pokud je str1 delší, a záporné číslo, pokud je str2 delší.
#include #include int main () {char *str1 = "apple"; char *str2 = "oranžová"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 is longer"); } else if (ret <0) {printf ("str2 je delší"); } else {printf ("Oba řetězce jsou stejně dlouhé"); } return (0); }