Funkcja strcasecmp w C

Funkcja strcasecmp w C

Funkcje strcasecmp umożliwiają porównanie między dwoma ciągami. Ta funkcja porównywania przypadków nie jest wrażliwa na małe lub wielkie litery lub alfabety w strunach, ponieważ ta funkcja najpierw przekształca zarówno znaki sznurka w małe litery, a następnie je porównuje. Porównanie jest zawsze dokonywane między tymi ciągami, które kończą się w jakimś zerowym charakterze, e.G. „/0”. Strcasecmp zaczyna porównać dwa różne struny z pierwszą postacią w obu strunach. To porównanie kończy się z znakiem zerowym, który wskazuje, że ciąg się skończył. Ta funkcja zwraca niektóre wartości jako wartość zwracaną po porównaniu. Te wartości powrotne są reprezentowane jako mniejsze niż zero, co oznacza, że ​​pierwszy ciąg jest mniejszy niż drugi. Równe „0” lub „0” pokazuje, że oba ciągi są równe i więcej niż zero, co oznacza, że ​​pierwszy ciąg jest bardziej/ większy niż drugi.

Procedura

Porozmawiamy o metodach porównywania dwóch różnych ciągów różnych rozmiarów za pomocą metody strcasecmp (). Zbadamy metodę deklaracji tej funkcji i dowiemy się, gdzie możemy skorzystać z tej funkcji. Aby uzyskać praktyczną funkcję, rozwiążemy niektóre przykłady, które używają metody porównywania przypadków String Case.

Składnia

Metoda deklaracji strcasecmp () polega na użyciu wskazówek wskazujących na dwa ciągi, które chcemy ze sobą porównać. Najpierw definiujemy typ powrotu dla tej funkcji, który jest „liczbą całkowitą”. Następnie nazywamy funkcję „strcasecmp” i definiujemy jej parametry jako wskaźniki obu ciągów. Deklaracja ta jest reprezentowana w następnym wierszu w następujący sposób:

$ Int strcasecmp (char * string_1, char * str_2)

Przykład 1

W tym przykładzie wykorzystuje wcześniej wspomniane wyjaśnienie funkcji strcasecmp () do porównania ciągów. Na początek metodę porównywania wykonujemy przykład w C w kompilatorze Microsoft Visual Studio. Naszym pierwszym krokiem byłoby stworzenie nowego projektu dla C. A następnie uwzględniamy wymagane biblioteki z podstaw C, aby odczytać lub zapisać dane wejściowe i wyjścia w programie. Ponadto, ponieważ mamy do czynienia z ciągami w tym artykule, importujemy również plik nagłówka, który pozwala nam korzystać z funkcji związanych z ciągiem w programie. Importujemy tylko dwa nagłówki „.H ”Pliki po poleceniach:

$ # obejmują
$ # obejmują

Po przykładzie tego kroku zaczynamy teraz od utworzenia programu dla funkcji strcasecmp (). Aby to zrobić, deklarujemy dwa ciągi z typem danych jako „char”. Możemy nazwać te ciągi odpowiednio „String_1” i „String_2”. Zainicjujemy te ciągi z pewnymi losowymi wartościami jako „krzesła” do String_1 i „Krzesła” do String_2. Po tym przypisaniu wartości do ciągów definiujemy wskaźniki dla obu tych ciągów za pomocą typu danych „char” i inicjuje zmienną jako „porównanie wyniku”, który ma typ danych „całkowitą”.

Do tej zmiennej przypisujemy funkcję strcasecmp (), która ma String_1 i String_2 jako jej argumenty wejściowe. Następnie sugerujemy warunki „jeśli inaczej” do tej zmiennej wyniku, że jeśli wynik jest równy „0”, wydruku „struny są równe”. Jeśli wynik jest „mniejszy niż 0”, wyświetl „String_1 jest mniejszy niż String_2” lub „String_1 jest większy niż String_2” i zwraca wartość równą 0 do funkcji głównej. Staramy się ponownie zapisać wyjaśnienie, o których wspomnieliśmy na przykład numer 1 w formie programu za pomocą języka C na poniższym rysunku:

#włączać
#włączać
int Main (void)
char* string_1 = "krzesła";
char* string_2 = "krzesła";
int compare_result;
compare_result = strcasecmp (string_1, string_2);
if (porównaj_result == 0)
printf („równe sznurki.\N");
inaczej if (porównaj < 0)
printf („„%s ”String1 jest mniejszy niż String2"%s ".\ n ", string_1, string_2);
w przeciwnym razie
printf („„%s ”String1 jest większy niż String2„%s ”.\ n ", string_1, string_2);
powrót 0;

Wyniki porównania, które dokonaliśmy dla obu strun 1 i 2, pojawiły się. Wyjście wyświetla się, że ciągi są równe, co jest prawidłowym oszacowaniem, ponieważ porównywany przez nas struny były takie same.

Przykład 2

W drugim przykładzie wykonywamy kod do porównania dwóch ciągów, za które przyjmujemy wartości od użytkownika, co oznacza, że ​​bierzemy wartości dwóch ciągów od użytkownika i drukujemy wynik ich porównania. Importujemy pliki nagłówka dla funkcji ciągów oraz wyświetlacz wyjściowy i wprowadza odczyt jako „String. h ”i„ stdio. H ”odpowiednio. Aby rozpocząć kodowanie, deklarujemy, że ciągi (dwa) mają rozmiar danych jako „50” i typ danych „char”.

Aby zainicjować te ciągi, przyjmujemy dane wejściowe od użytkownika, wywołując metodę „scanf ()” i przekazujemy specyfikator formatu „%s” i nazwę ciągów. Przechowujemy wynik porównania obu strun zdefiniowanych przez użytkownika w zmiennej „Porównaj_Result” i nakładamy „instrukcję IF”, że jeśli wynik jest równy zero, „struny są równe”. W przeciwnym razie „nie są one równe”. Jeśli stwierdzenie jest prawdziwe, drukujemy „równe struny”. W przypadku błędu, program drukuje „nie równy”. Następnie program kończy główną funkcję, zwracając zero jako wartość zwracaną. Dołączyliśmy następujący fragment kodu do wdrożenia tego przykładu:

#włączać
#włączać
int Main (void)

Char String_1 [50];
Char String_2 [50];
printf („Enter String_1”);
scanf („%s”, string_1);
printf („Enter String_2”);
scanf („%s”, string_2);
int compare_result;
compare_result = strcasecmp (string_1, string_2);
if (porównaj_result == 0)
printf („równe struny”);
w przeciwnym razie
printf („nie równy”);
powrót 0;

Dwa sznurki zdefiniowane przez użytkownika to odpowiednio „krzesła” i „tabela”. Wynik porównania okazał się „nie jest równy”, co jest poprawne, ponieważ dwa ciągi, które zostały porównywane w programie, nie były równe. Możemy również zastosować warunki dla większych niż i mniej niż dla wyniku porównania.

Wniosek

Zastosowanie funkcji porównania ciągów jest bardzo powszechne w prawie każdej aplikacji napisanej w dowolnym języku programowania. W tym artykule omówiliśmy użycie funkcji strcasecmp (). Ta funkcja porównawcza ma porównanie dwóch ciągów, a ta funkcja jest niewrażliwa na małe litery i wielkie litery. Zaimplementowaliśmy tę funkcję porównania ciągów dla zarówno ciągów zdefiniowanych w programie, jak i w strunach zdefiniowanych przez użytkownika, wywołując metodę Scanf ().