Porównywanie długości ciągów jest często używaną funkcją w programowaniu w C, ponieważ może powiedzieć, który ciąg ma więcej znaków. Ta funkcja jest bardzo przydatna przy sortowaniu danych. Porównywanie ciągów wymaga specjalnej funkcji; nie używaj != lub ==.
Krok
Krok 1. Istnieją 2 rodzaje funkcji, których możesz użyć do porównywania ciągów w języku C
Obie te funkcje są zawarte w bibliotece.
- strcmp(): Ta funkcja porównuje dwa ciągi i zwraca wynik porównania liczby znaków między nimi.
- strncmp(): Ta funkcja jest taka sama jak strcmp(), z wyjątkiem tego, że porównuje pierwsze n} znaków w ciągu. Ta funkcja jest uważana za bezpieczniejszą, ponieważ zapobiega zablokowaniu programu z powodu przeciążenia.
Krok 2. Uruchom program z potrzebnymi bibliotekami
Zalecamy uruchomienie i wraz z innymi bibliotekami potrzebnymi do konkretnego programu.
#włącz #włącz
Krok 3. Uruchom funkcję
wewn. Jest to najłatwiejszy sposób nauczenia się tej funkcji, ponieważ zwraca wartość całkowitą porównania liczby znaków w dwóch ciągach.
#include #include int main() { }
Krok 4. Zdefiniuj dwa ciągi, które chcesz porównać
Na przykład porównamy 2 ciągi danych typu char, które zostały zdefiniowane wcześniej. Możesz również zdefiniować wartość zwracaną przez tę funkcję, aby miała typ danych integer.
#include #include int main() { char *str1 = "jabłko"; char *str2 = "pomarańczowy"; int ret; }
Krok 5. Dodaj funkcję porównania
Po zdefiniowaniu tych dwóch ciągów możesz dodać funkcję porównania. Będziemy używać strncmp(), więc musimy się upewnić, że liczba znaków do zmierzenia jest ustawiona w funkcji.
#include #include int main() { char *str1 = "jabłko"; char *str2 = "pomarańczowy"; int ret; ret = strncmp(str1, str2, 6); /*Ta funkcja porówna oba ''ciągi'' składające się z 6 znaków */ }
Krok 6. Użyj instrukcji
Jeśli… Jeszcze do porównania. Po dodaniu funkcji do programu możesz użyć instrukcji, aby wyświetlić, który ciąg ma więcej znaków. strncmp() zwróci 0, jeśli łańcuchy mają taką samą liczbę znaków, liczbę dodatnią, jeśli słowo1 jest dłuższe, a liczbę ujemną, jeśli słowo2 jest dłuższe.
#include #include int main() { char *str1 = "jabłko"; char *str2 = "pomarańczowy"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 jest dłuższe"); } else if(ret < 0) { printf("str2 jest dłuższe"); } else { printf("Oba łańcuchy mają tę samą długość"); } return(0); }