Jak porównać ciąg w C++

How Compare String C



Porównywanie ciągów jest bardzo częstym zadaniem w każdym języku programowania. Służy głównie do walidacji danych, na przykład sprawdzania nazwy użytkownika i hasła danych logowania. Porównanie ciągów można wykonać za pomocą operatora porównania lub za pomocą funkcji wbudowanych. Dwie funkcje porównywania ciągów używane w C++ to: strcmp() oraz porównywać() . ten strcmp() jest funkcją biblioteczną języka C do porównywania dwóch łańcuchów. C porównaj () jest wbudowaną funkcją C++ do porównywania dwóch łańcuchów. W tym samouczku wyjaśniono sposoby porównywania ciągów za pomocą operatorów i funkcji porównania.

Warunek wstępny:

Przed sprawdzeniem przykładów z tego samouczka musisz sprawdzić, czy kompilator g++ jest zainstalowany w systemie. Jeśli używasz Visual Studio Code, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C++ w celu utworzenia kodu wykonywalnego. Tutaj aplikacja Visual Studio Code została użyta do kompilacji i wykonania kodu C++.







Używanie Operatora porównania do porównania ciągu:

Najpopularniejszym sposobem porównywania ciągów w C++ jest użycie operatora porównania. Są to operatory równe (==) i nie równe (!=). Utwórz plik C++ z następującym kodem, aby porównać dwie wartości ciągu przy użyciu operatora porównania. Zgodnie z kodem adres URL zostanie pobrany od użytkownika i porównany z innymi ciągami za pomocą operatora równości (==). Jeśli wartość wejściowa pasuje do dowolnego łańcucha warunku „if”, zostanie wydrukowana konkretna wiadomość; w przeciwnym razie zostanie wyświetlony komunikat części „inna”.



//Dołącz niezbędną bibliotekę

#włączać

używanie standardowej przestrzeni nazw;

intmain() {
// Zadeklaruj zmienną łańcuchową
ciąg url_addr;
// Pobierz adres URL od użytkownika
kosztadres_url;
// Porównaj wartość wejściową z innym ciągiem za pomocą równoważnego operatora
Jeśli(adres_url== „Google com”)
koszt<<'To jest wensite wyszukiwarki.'<<koniec;
elseif(adres_url== „jooble.org”)
koszt<<„To jest strona internetowa poszukująca pracy”.<<koniec;
elseif(adres_url== 'linuxhint.pl')
koszt<<„To jest witryna blogowa”.<<koniec;
w przeciwnym razie
koszt<<'Nie dodano żadnych informacji dla tej witryny.'<<koniec;

powrót0;
}

Wyjście:



Po wykonaniu kodu, jeśli użytkownik wpisał „ linuxhint.pl ‘ jako dane wejściowe, zostanie zwrócony trzeci warunek ‘if’ Prawdziwe, i pojawi się następujący wynik.





Użycie funkcji Compare() do porównania ciągu:

Funkcja Compare() porównuje dwa ciągi i zwraca 0, 1 lub -1 na podstawie pasującego wyniku porównania. Znaczenie wartości zwracanych podano poniżej.



  • Funkcja zwróci 0, gdy oba porównywane ciągi są równe.
  • Funkcja zwróci 1, gdy pierwszy ciąg będzie większy od drugiego.
  • Funkcja zwróci -1, gdy pierwszy ciąg będzie mniejszy niż drugi.

Składnia:

intciąg1.porównywać(ciąg2)

Utwórz plik C++ z następującym kodem, aby porównać dwie wartości ciągu z dwiema wartościami wejściowymi za pomocą funkcji Compare(). Uwierzytelnienie dowolnego użytkownika można sprawdzić, porównując wartości przesłane przez użytkowników z wartościami uwierzytelnionego użytkownika. Ten proces uwierzytelniania został zaimplementowany w poniższym kodzie. Prawidłowy adres e-mail i hasło zostały zapisane w dwóch zmiennych łańcuchowych. Następnie wartości te zostały porównane z adresem e-mail i hasłem pobranym od użytkownika używającego porównywać () funkcjonować. Logiczne ORAZ operator został użyty w kodzie do uwierzytelnienia użytkownika. Komunikat o powodzeniu zostanie wydrukowany, jeśli obie funkcje porównania() zwrócą True. W przeciwnym razie zostanie wydrukowany komunikat o błędzie.

//Dołącz niezbędną bibliotekę

#włączać

używanie standardowej przestrzeni nazw;

intmain() {

//Zainicjuj dwie zmienne łańcuchowe
e-mail tekstowy(' [e-mail chroniony] ');
hasło tekstowe(„linuxhint”);
//Zadeklaruj dwie zmienne łańcuchowe
ciąg user_email;
ciąg użytkownika_hasło;

//Pobierz adres e-mail od użytkownika
kosztużytkownik_e-mail;

//Pobierz hasło od użytkownika
koszthasło użytkownika;

//Sprawdź nazwę użytkownika i hasło są prawidłowe lub nieprawidłowe
Jeśli (użytkownik_e-mail.porównywać(e-mail) == 0&&hasło użytkownika.porównywać(hasło) == 0 )
koszt<<„Uwierzytelnianie powiodło się”.<<koniec;
w przeciwnym razie
koszt<<„E-mail lub hasło jest nieprawidłowe”.<<koniec;

powrót0;
}

Wyjście:

Po wykonaniu kodu, jeśli użytkownik wpisał „ [e-mail chroniony] ‘ jako adres e-mail i ‘ 12345 ‘ jako hasło zostanie zwrócony trzeci warunek ‘if’ Fałszywe, i pojawi się następujący wynik.

Po ponownym wykonaniu kodu, jeśli użytkownik wpisał „ [e-mail chroniony] ‘ jako adres e-mail i ‘ linuxhint ‘ jako hasło zostanie zwrócony trzeci warunek ‘if’ Prawdziwe, i pojawi się następujący wynik.

Użycie funkcji strcmp() do porównania ciągu:

strcmp() to kolejna funkcja do porównywania ciągów w C++. Zwraca true, jeśli oba porównywane ciągi są równe. Parametry wejściowe pobierane przez tę funkcję różnią się od funkcji Compare(). Funkcja porównania przyjmuje wartość ciągu jako parametr, a funkcja strcmp() przyjmuje tablicę znaków jako parametr. Składnia tej funkcji jest podana poniżej.

Składnia:

int strcmp ( stały zwęglać *str1, stały zwęglać *str2);

Utwórz plik C++ z następującym kodem, aby porównać dwa ciągi za pomocą funkcji strcmp(). W kodzie zostały zadeklarowane dwie tablice znaków po 100 elementów do przechowywania wartości ciągów znaków pobieranych przez użytkowników. ten getline() Funkcja służy do przechowywania danych wejściowych użytkownika w zmiennych tablicowych znaków. Następnie strcmp() funkcja została użyta do sprawdzenia, czy wartości wejściowe są równe lub nie. Jeśli funkcja zwraca Prawdziwe, wtedy zostanie wydrukowany komunikat o powodzeniu; w przeciwnym razie zostanie wydrukowany komunikat o niepowodzeniu,

//Dołącz niezbędne biblioteki

#włączać

#włączać

używanie standardowej przestrzeni nazw;

intmain() {
// Usuń dwie zmienne łańcuchowe
zwęglaćchrData1[100],chrData2[100];

//Weź pierwszy ciąg danych
koszt<<'Wprowadź pierwszy ciąg:';
Gin.getline(chrData1, 100);
//Weź drugi ciąg danych
koszt<<'Wprowadź drugi ciąg:';
Gin.getline(chrData2, 100);

Jeśli ( strcmp (chrData1,chrData2)==0)
printf („Struny są równe” ');
w przeciwnym razie
printf („Struny nie są równe” ');

powrót0;
}

Wyjście:

Po wykonaniu kodu wartość ciągu „ dzień dobry ‘ jest podane dla obu wartości wejściowych i pojawi się następujący wynik.

Wniosek:

W tym samouczku pokazano trzy sposoby porównywania ciągów w języku C++, używając trzech prostych przykładów. Zarówno zastosowania operatora porównania, jak i wbudowane funkcje sprawdzania równości ciągów zostały opisane w tym samouczku, aby pomóc nowym programistom C++.