Jak porównać dwa wiersze w języku programowania c
W kategoriach oprogramowanych napisanych w C, dość często porównaj długości łańcuchów, aby dowiedzieć się, która linia zawiera więcej znaków. Jest to przydatne do sortowania danych. Aby porównać ciągi, wymagana jest specjalna funkcja - nie używaj != lub ==.
Kroki
jeden. Język programowania z dwoma funkcjami, z którymi można porównać długości łańcuchów. Oba te funkcje są zawarte w bibliotece .
- STRCMP () - Ta funkcja porównuje dwie linie i zwraca różnicę liczby znaków.
- Strncmp () - Ta funkcja jest podobna do funkcji STRCMP () Z wyjątkiem tego, że pierwszy jest porównywany N Symbolika. Jest uważany za bardziej bezpieczny, ponieważ uniknąć awarii spowodowanych przepełnieniem.
2. Uruchom program z wymaganych bibliotek. Potrzebujesz bibliotek i , jak również wszelkie inne biblioteki niezbędne do twojego konkretnego programu.
#Zawierać[[Zdjęcie: Porównaj dwie struny w programie C Krok 1 Wersja 4.jpg | centrum]]
3. Wprowadź funkcję int. Zwraca liczbę całkowitą w wyniku porównywania długości dwóch linii.
[Zdjęcie: Porównaj dwie struny w programie C Krok 2 Wersja 4.jpg | centrum]][Obraz: Porównaj dwie struny w programie C Krok 3 Wersja 3.jpg | centrum]] int Główny () {}
cztery. Określ dwie linie, które chcesz porównać. W naszym przykładzie porównujemy dwa wiersze z typem Zwęglać. Również zdefiniuj wartość zwracaną jako liczbę całkowitą.
[Obraz: Porównaj dwie struny w programie C Krok 4 Wersja 4.jpg | centrum]][[Zdjęcie: Porównaj dwie struny w programie C Krok 5 Wersja 4.jpg | centrum]] int Main () {char * str1 = "jabłko"-Char * str2 = "Pomarańczowy"-Int ret-}
pięć. Wprowadź funkcję porównania. W naszym przykładzie używamy funkcji Strncmp (). Musi ustawić liczbę zmierzonych znaków.
[[Zdjęcie: Porównaj dwie struny w programie C Krok 6 Wersja 4.jpg | centrum]]#Zawierać int Main () {char * str1 = "jabłko"-Char * str2 = "Pomarańczowy"-Int ret-ret = STRNCMP (STR1, STR2, 8) - / * Porównaj dwie linie, których długość, która nie przekracza 8 znaków * /}
6. Wprowadź operatora warunkowego Gdyby ... JESZCZE. Konieczne jest pokazanie tego, co jest dłuższy. Funkcjonować Strncmp () Zwróć numer 0, Jeśli ciągi są takie same, liczba dodatnia, jeśli Str1 jest dłuższa, a liczba ujemna, jeśli Str2 jest dłuższa.
#Zawierać#Zawierać int Main () {char * str1 = "jabłko"-Char * str2 = "Pomarańczowy"-Int ret-ret = strncmp (str1, str2, 8) -if (RET> 0) {Printf ("Str1 jest dłuższy") -} else jeśli (RET < 0){printf("str2 длиннее")-}else{printf("Длины строк равны")-}return(0)-}
Ostrzeżenie
- Pamiętaj, że jeśli długości ciągu są równe, wartość 0 powróci. Może cię pomylić, ponieważ 0 jest również wartością false (false).