Jak porovnat dvě řádky v programovacím jazyce c
V softwarových kódech napsaných v C, poměrně často porovnávají délky řetězce, abyste zjistili, která řádka obsahuje více znaků. To je užitečné pro třídění dat. Chcete-li porovnat struny, je nutná speciální funkce - nepoužívejte != nebo ==.
Kroky
jeden. Programovací jazyk s obsahuje dvě funkce, se kterým můžete porovnat délky řetězce. Obě tyto funkce jsou zahrnuty v knihovně .
- Strcmp () - Tato funkce porovnává dva řádky a vrátí rozdíl v počtu znaků.
- Strncmp () - Tato funkce je podobná funkce Strcmp () kromě toho, že první porovnává N Symboly. Je považován za bezpečnější, protože se vyhýbá selhám v důsledku přetečení.
2. Spusťte program z požadovaných knihoven. Budete potřebovat knihovny a , Stejně jako jiné knihovny nezbytné pro váš konkrétní program.
#Zahrnout[[Image: Porovnejte dva řetězce v programovacím kroku 1 verze 4.jpg | centrum]] # zahrnovat
3. Zadejte funkci int. Vrátí celé číslo jako výsledek porovnání délky dvou řádků.
[Image: Porovnejte dva řetězce v programovacím kroku 2 verze 4.jpg | centrum]] # zahrnovat[[Image: Porovnejte dva řetězce v programovacím kroku 3 verze 3.jpg | centrum]] # zahrnovat int Hlavní () {}
4. Určete dva řádky, které chcete porovnat. V našem příkladu porovnáme dvě řady s typem Char. Také definujte návratovou hodnotu jako celé číslo.
[[Image: Porovnejte dva řetězce v programovacím kroku 4 verze 4.jpg | centrum]] # zahrnovat[[Image: Porovnejte dva řetězce v programovacím kroku 5 verze 4.jpg | centrum]] # zahrnovat int Hlavní () {char * str1 = "Jablko"-Char * str2 = "oranžový"-Int ret-}
Pět. Zadejte srovnávací funkci. V našem příkladu používáme funkci Strncmp (). Potřebuje nastavit počet měřených znaků.
[[Image: Porovnejte dva řetězce v programování CP 6 verze 4.jpg | centrum]] # zahrnovat#Zahrnout int Hlavní () {char * str1 = "Jablko"-Char * str2 = "oranžový"-INT RET-RET = StrNCMP (STR1, STR2, 8) - / * Porovnání dvou řádků, jejichž délka nepřesahuje 8 znaků * /}
6. Zadejte podmíněný provozovatele Li ... JINÝ. Je nutné ukázat, co je řetězec delší. Funkce Strncmp () Vrátit číslo 0, Pokud jsou řetězce stejné, pozitivní číslo, pokud je STR1 delší, a záporné číslo, pokud je STR2 delší.
#Zahrnout#Zahrnout int Hlavní () {char * str1 = "Jablko"-Char * str2 = "oranžový"-INT RET-RET = STRNCMP (STR1, STR2, 8) -IF (RET > 0) {printf ("Str1 je delší") -} Jinak, pokud (RET < 0) {printf ("Str2 déle") -} else {tiskf ("Délka řetězce jsou stejné") -} Návrat (0) -}
Varování
- Nezapomeňte, že pokud jsou délka řetězce stejné, hodnota 0 se vrátí. Může vás zmást, protože 0 je také hodnota false (false).