Zawartość
Porównanie długości ciągów jest często używaną funkcją w języku programowania C, ponieważ pozwala dowiedzieć się, który ciąg zawiera więcej znaków. Jest to bardzo przydatne do sortowania danych. Porównanie ciągów wymaga specjalnej funkcji; więc nie używaj: != lub ==.
Do kroku
- Istnieją dwie funkcje, które umożliwiają porównywanie ciągów znaków w C. Oba są zawarte w string.h>biblioteka kodów.
- strcmp () - Ta funkcja porównuje dwa ciągi i zwraca różnicę w liczbie znaków.
- strncmp () - Dotyczy to również strcmp (), z wyjątkiem tego, że ten jest pierwszy n porównuje znaki. Uważa się, że jest bezpieczniejszy, ponieważ pomaga zapobiegać awariom spowodowanym przepełnieniem.
- Uruchom program z niezbędnymi bibliotekami. Masz obie biblioteki stdio.h> i string.h> potrzebne, wraz z innymi bibliotekami, których możesz potrzebować w swoim programie.
#include stdio.h> [[Obraz: Porównanie dwóch ciągów w C, krok 1 programowania, wersja 4.webp | center]] #include string.h>
- Zacznij jeden.intfunkcjonować. Jest to najłatwiejszy sposób nauczenia się tej funkcji, ponieważ zwraca ona liczbę całkowitą porównującą długość dwóch ciągów.
[[Obraz: Porównanie dwóch ciągów w C, krok 2 programowania, wersja 4.webp | center]] #include stdio.h> [[Obraz: Porównanie dwóch ciągów w kroku 3 programowania w języku C, wersja 3.webp | center]] #include string. h> int main () {}
- Zdecyduj, które dwa ciągi chcesz porównać. W tym przykładzie porównujemy dwa dane zwęglać smyczki. Należy również określić zwracaną wartość jako liczbę całkowitą.
[[Image: Porównanie dwóch ciągów w C, krok 4, wersja 4.webp | center]] #include stdio.h> [[Obraz: Porównanie dwóch ciągów w C, krok 5, wersja 4.webp | center]] #include string. h> int main () {char * str1 = "jabłko"; char * str2 = "pomarańczowy"; int ret;}
- Dodaj funkcję porównania. Po zdefiniowaniu dwóch ciągów możesz dodać funkcję porównującą. Idziemy strncmp () dlatego musimy się upewnić, że liczba mierzonych znaków jest ustawiona w funkcji.
[[Obraz: Porównanie dwóch łańcuchów w kroku 6 programowania w języku C, wersja 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "pomarańczowy"; int ret; ret = strncmp (słowo1, słowo2, 11); / * Porównuje dwa ciągi o długości do 11 znaków * /}
- Posługiwać się.Jeśli inaczejwykonać porównanie. Teraz, gdy utworzyliśmy funkcję, użyj Jeśli inaczej aby określić, który ciąg jest dłuższy. strncmp () daje 0 w rezultacie, jeśli łańcuchy mają tę samą długość, liczbę dodatnią, jeśli słowo1 jest dłuższe, a liczbę ujemną, jeśli słowo2 jest dłuższe.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "pomarańczowy"; int ret; ret = strncmp (słowo1, słowo2, 11); if (ret> 0) {printf ("str1 jest dłuższe"); } else if (ret 0) {printf ("str2 jest dłuższe"); } else {printf ("Te dwa łańcuchy są takie same"); } powrót (0); }
Ostrzeżenia
- Pamiętaj, że wartość zwracana to 0, jeśli ciągi są równe. Może to być mylące, ponieważ 0 jest również wartością FAŁSZ.