Jak porównać dwa ciągi znaków w języku programowania C?

Autor: William Ramirez
Data Utworzenia: 18 Wrzesień 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
stat243-fall-2014 Class 13
Wideo: stat243-fall-2014 Class 13

Zawartość

W kodzie C dość często porównuje się długości ciągów, aby dowiedzieć się, który ciąg zawiera więcej znaków. Jest to przydatne do sortowania danych. Do porównania ciągów potrzebna jest specjalna funkcja - nie używaj != lub ==.

Kroki

  1. 1 Język programowania C zawiera dwie funkcje, których można użyć do porównywania długości ciągów. Obie te funkcje są zawarte w bibliotece ciąg.h>.
    • strcmp () - ta funkcja porównuje dwa ciągi i zwraca różnicę w liczbie znaków.
    • strncmp () - ta funkcja jest taka sama jak strcmp () z wyjątkiem tego, że pierwszy n postacie. Jest uważany za bezpieczniejszy, ponieważ zapobiega awariom przepełnienia.
  2. 2 Uruchom program z wymaganymi bibliotekami. Będziesz potrzebować bibliotek stdio.h> oraz ciąg.h>jak również wszelkie inne biblioteki wymagane dla konkretnego programu.

    #include stdio.h> #include string.h>

  3. 3 Wprowadź funkcję int. Zwraca liczbę całkowitą w wyniku porównania długości dwóch ciągów.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Zidentyfikuj dwa ciągi, które chcesz porównać. W naszym przykładzie porównajmy dwa ciągi typu zwęglać... Zdefiniuj również wartość zwracaną jako liczbę całkowitą.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabłko"; char * str2 = "pomarańczowy"; int ret; }

  5. 5 Wprowadź funkcję porównania. W naszym przykładzie użyjemy funkcji strncmp ()... W nim musisz ustawić liczbę mierzonych znaków.

    #include stdio.h> #include string.h> int main () {char * str1 = "jabłko"; char * str2 = "pomarańczowy"; int ret; ret = strncmp (str1, str2, 8); / * Porównuje dwa ciągi o długości do 8 znaków ​​* /}

  6. 6 Wpisz oświadczenie warunkowe Jeśli... W przeciwnym razie. Potrzebne jest pokazanie, która linia jest dłuższa. Funkcjonować strncmp () zwróci numer 0jeśli długości łańcuchów są takie same, liczba dodatnia, jeśli słowo1 jest dłuższe, a liczba ujemna, jeśli słowo2 jest dłuższe.

    #include stdio.h> #include string.h> 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ższe"); } else if (ret 0) {printf ("str2 jest dłuższe"); } else {printf ("Długości linii są równe"); } powrót (0); }

Ostrzeżenia

  • Pamiętaj, że jeśli długości ciągów są równe, zostanie zwrócona wartość 0. Może to być mylące, ponieważ 0 jest również FAŁSZEM.