Porównanie znaków w programowaniu C

Porównanie znaków w programowaniu C

Porównanie znaków W języku programowania C jest podstawową częścią każdego programu. Podobnie jak w każdym języku programowania, istnieją różnice między tym, jak obsługuje C Porównanie znaków na powierzchni i to, jak to robi, podnosząc logikę programu. Jest to dokładna metoda używana przez strony internetowe do weryfikacji haseł pod kątem spójności podczas łączenia, oprogramowanie do wykrywania plagiatu i tak dalej.

Aby sprawdzić, czy dwa ciągi są równe, możemy albo porównać je według znaku lub użyć wbudowanej funkcji. Omówmy obie metody porównania znaków.

Metoda 1: Korzystanie z operatorów porównawczych

Jeśli chodzi o Porównanie znaków W C najczęstszą operacją jest porównanie dwóch ciągów o tej samej długości, często określanej jako „Leksykograficznie” Porównanie. Ta metoda analizuje znaki w strunach indywidualnie i zaczyna porównać pierwszą literę w każdym ciągu. Stamtąd porównywane są drugie postacie (jeśli są takie same, trzecie znaki są porównywane i tak dalej). Jeśli pozycja któregokolwiek z dwóch znaków nie jest taka sama, to porównanie zatrzymuje się, z postacią w dolnej pozycji (i.mi. postać z niższym kodem ASCII) uważany za postać „mniejszy”. Śledźmy tę metodę z przykładem pokazanym poniżej:

#włączać
void Porównaj (Char X, Char Y)

if (x == y)
printf („Oba znaki są równe \ n %c i %c \ n”, x, y);
w przeciwnym razie
printf („ %c i %c nie są równe \ n”, x, y);

int main ()

char a = „h”;
char b = „h”;
char c = „h”;
Porównaj (a, c);
Porównaj (b, a);
Porównaj (C, B);
powrót 0;

Powyższy kod korzysta z metody zdefiniowanej przez użytkownika porównywać() porównać dwie postacie, aby sprawdzić, czy są one równe. Czytając wartości dwóch znaków od użytkownika i porównując je, ten program będzie wyprowadzony „Postacie są równe” Jeśli postacie są równe i „Postacie nie są równe” W przeciwnym razie.

Wyjście

Metoda 2: Korzystanie z wbudowanych funkcji

Wykraczając poza to podstawowe porównanie, C zawiera również wiele dodatkowych narzędzi do radzenia sobie Porównanie znaków. Na przykład funkcjonuje biblioteka strcmp () I strncmp () Zapewnij większą kontrolę nad porównanie, podczas gdy operatorzy logiczni, tacy jak ||, &&, i ! Dodaj kolejne możliwości. Te zaawansowane metody i narzędzia mogą być niezwykle przydatne w zapewnieniu, że logika porównania jest bardziej elastyczna i kompleksowa w programach C.

I: funkcja strcmp ()

strcmp () Funkcja zawarta w pliku nagłówka łańcucha biblioteki C jest również używana do porównania znaków. Dwa ciągi są charakteru w porównaniu strcmp () metoda. Pierwszy znak z każdego ciągu w każdym jest porównany, a następnie następne znaki.

#włączać
#włączać
int main ()

Char S1 [10];
Char S2 [10];
wartość int;
printf („wprowadź ciąg:”);
Scanf („%s”, s1);
printf („Wprowadź drugi ciąg:”);
Scanf („%s”, s2);
wartość = strcmp (s1, s2);
if (wartość == 0)
printf („oba ciągi są takie same”);
w przeciwnym razie
printf („struny nie są takie same”);
powrót 0;

Postaci S1 I S2 są określone w tym kodzie. Następnie użytkownicy są poproszeni o wprowadzenie znaków. Po wprowadzeniu znaków, strcmp () funkcja ich porównuje, a wyjście jest wytwarzane na podstawie wyniku.

Wyjście

II: funkcja strncmp ()

strncmp () Funkcja to funkcja stringowa używana do porównania dwóch ciągów w C. Określa również, czy dwa struny są równe. Trzeci parametr jest używany przez strncmp () funkcja ograniczenia porównania. Oznacza to, że możesz porównać pierwsze cztery postacie lub pierwsze pięć znaków itp. Zamiast całego ciągu.

Porównanie ciągów odbywa się na podstawie ASCII Wartości znaków.

Ta metoda zwraca następujące wartości:

  • Zwróć wartość mniej niż 0 oznacza to str1 jest mniej niż str2.
  • Wartość zwracana> 0 oznacza to str2 jest mniejszy od str1 Jeśli to jest.
  • Jeśli wartość zwracana wynosi 0, oznacza to str1 I str2 są równoważne.
#włączać
#włączać
int main ()
char STR1 [10];
Char Str2 [10];
Int wynik;
strcpy (str1, „vjjdvfvd”);
strcpy (str2, „scjhscjs”);
wynik = strncmp (str1, str2, 6);
if (wynik 0)
printf („STR2 jest mniejszy niż str1”);
w przeciwnym razie
printf („STR1 jest równy STR2”);

zwrot (0);

Ten kod deklaruje znaki S1 i S2. Następnie użytkownicy proszeni są o wpisanie znaków. Po wprowadzeniu znaków funkcja STNCMP () porównuje je przy użyciu liczby wybranych znaków dla porównania, a dane wyjściowe jest generowane na podstawie wyniku.

Wyjście

Wniosek

Porównanie znaków W języku programowania C jest skomplikowanym, wieloaspektowym procesem, przy czym wymagane są różne metody i narzędzia w zależności od rodzaju dokonanego porównania. Zrozumienie dokładnie, jak działa każda część procesu i jakie są najbardziej odpowiednie narzędzia, jest niezbędne do udanego programowania C. W tym artykule zdefiniowano dwie metody Porównaj postacie: Metoda porównawcza i funkcje wbudowane.