Jak porovnat řetězec v C ++

How Compare String C



Porovnání řetězců je velmi běžným úkolem pro jakýkoli programovací jazyk. Používá se hlavně k ověřování údajů, jako je kontrola uživatelského jména a hesla přihlašovacích údajů. Porovnání řetězců lze provést pomocí operátoru porovnání nebo pomocí vestavěných funkcí. Dvě funkce porovnávání řetězců používané v C ++ jsou, strcmp () a porovnat () . The strcmp () je knihovní funkcí C pro porovnání dvou řetězců. C. ompare () je vestavěná funkce C ++ pro porovnání dvou řetězců. V tomto kurzu byly vysvětleny způsoby porovnávání řetězců pomocí porovnávacích operátorů a funkcí.

Předpoklad:

Před kontrolou příkladů tohoto kurzu musíte zkontrolovat, zda je kompilátor g ++ nainstalován nebo není v systému. Pokud používáte kód Visual Studio, nainstalujte potřebná rozšíření ke kompilaci zdrojového kódu C ++ a vytvořte spustitelný kód. Zde byla aplikace Visual Studio Code použita ke kompilaci a spuštění kódu C ++.







Použití operátoru porovnání k porovnání řetězce:

Nejběžnějším způsobem porovnávání řetězců v C ++ je použití operátoru porovnání. Jedná se o stejné (==) a ne stejné (! =) Operátory. Vytvořte soubor C ++ s následujícím kódem pro porovnání dvou řetězcových hodnot pomocí operátoru porovnání. Podle kódu bude uživateli odebrána adresa URL a porovnána s jinými řetězci pomocí operátoru rovná se (==). Pokud se vstupní hodnota shoduje s jakýmkoli řetězcem podmínky „if“, vytiskne se konkrétní zpráva; v opačném případě se zobrazí zpráva části „else“.



// Zahrnout potřebnou knihovnu

#zahrnout

usingnamespace std;

intmain() {
// Deklarujte proměnnou řetězce
řetězec url_addr;
// Získejte od uživatele adresu URL
nákladyurl_addr;
// Porovnejte vstupní hodnotu s jiným řetězcem pomocí ekvivalentního operátoru
-li(url_addr== 'Google com')
náklady<<'Je to stránka vyhledávače.'<<endl;
jinak(url_addr== 'jooble.org')
náklady<<'Je to web, který hledá práci.'<<endl;
jinak(url_addr== 'linuxhint.com')
náklady<<'Je to blogový web.'<<endl;
jiný
náklady<<'Pro tento web nejsou přidány žádné informace.'<<endl;

návrat0;
}

Výstup:



Pokud po spuštění kódu uživatel zadal „ linuxhint.com ‘Jako vstup bude vrácena třetí podmínka‘ pokud ’ Skutečný, a zobrazí se následující výstup.





Použití funkce porovnat () k porovnání řetězce:

Funkce porovnání () porovnává dva řetězce a vrací 0 nebo 1 nebo -1 na základě shodného výsledku porovnání. Význam návratových hodnot je uveden níže.



  • Funkce vrátí 0, pokud jsou oba porovnávací řetězce stejné.
  • Funkce vrátí 1, když je první řetězec větší než druhý řetězec.
  • Funkce vrátí -1, pokud je první řetězec menší než druhý řetězec.

Syntax:

intřetězec 1.porovnat(řetězec2)

Vytvořte soubor C ++ s následujícím kódem pro porovnání dvou řetězcových hodnot se dvěma vstupními hodnotami pomocí funkce porovnání (). Ověření libovolného uživatele lze zkontrolovat porovnáním hodnot odeslaných uživateli s hodnotami ověřeného uživatele. Tento proces ověřování byl implementován v následujícím kódu. Platná e -mailová adresa a heslo zde byly uloženy do dvou řetězcových proměnných. Dále jsou tyto hodnoty porovnány s e -mailovou adresou a heslem převzatým od uživatele pomocí porovnat () funkce. Logické A v kódu byl k ověření uživatele použit operátor. Zpráva o úspěchu se vytiskne, pokud obě funkce porovnání () vrátí hodnotu True. V opačném případě se vytiskne chybová zpráva.

// Zahrnout potřebnou knihovnu

#zahrnout

usingnamespace std;

intmain() {

// Inicializace dvou řetězcových proměnných
řetězcový e -mail('[email protected]');
řetězcové heslo('linuxhint');
// Deklarujte dvě proměnné řetězce
řetězec user_email;
řetězec heslo_uživatele;

// Získejte e -mailovou adresu od uživatele
nákladyuživatel_email;

// Převezměte heslo od uživatele
nákladyuživatelské heslo;

// Zkontrolujte, zda je uživatelské jméno a heslo platné nebo neplatné
-li (uživatel_email.porovnat(e-mailem) == 0&&uživatelské heslo.porovnat(Heslo) == 0 )
náklady<<'Ověření proběhlo úspěšně.'<<endl;
jiný
náklady<<'E -mail nebo heslo je neplatné.'<<endl;

návrat0;
}

Výstup:

Pokud po spuštění kódu uživatel zadal „ [chráněno emailem] „Jako e -mailová adresa a“ 12345 „Jako heslo, bude vrácena třetí podmínka„ pokud “ Nepravdivé, a zobrazí se následující výstup.

Po opětovném spuštění kódu, pokud uživatel zadal „ [chráněno emailem] „Jako e -mailová adresa a“ linuxhint „Jako heslo, bude vrácena třetí podmínka„ pokud “ Skutečný, a zobrazí se následující výstup.

Porovnání řetězce pomocí funkce strcmp ():

Strcmp () je další funkcí pro porovnání řetězců v C ++. Vrací true, pokud jsou oba porovnávací řetězce stejné. Vstupní parametry převzaté touto funkcí se liší od funkce porovnání (). Funkce porovnání bere jako parametr hodnotu řetězce a funkce strcmp () přebírá jako parametr pole char. Syntaxe této funkce je uvedena níže.

Syntax:

int strcmp ( konst char *str1, konst char *str2);

Vytvořte soubor C ++ s následujícím kódem pro porovnání dvou řetězců pomocí funkce strcmp (). V kódu byla deklarována dvě znaková pole se 100 prvky pro uložení hodnot řetězců přijatých uživateli. The getline () Funkce se používá k ukládání vstupů uživatele do proměnných pole char. Dále, strcmp () funkce slouží ke kontrole, zda jsou vstupní hodnoty stejné nebo ne. Pokud se funkce vrátí Skutečný, poté se vytiskne zpráva o úspěchu; v opačném případě se vytiskne chybová zpráva,

// Zahrňte potřebné knihovny

#zahrnout

#zahrnout

usingnamespace std;

intmain() {
// Zpoždění dvou řetězcových proměnných
charchrData1[100],chrData2[100];

// Vezměte data prvního řetězce
náklady<<'Zadejte první řetězec:';
gin.getline(chrData1, 100);
// Vezměte data druhého řetězce
náklady<<'Zadejte druhý řetězec:';
gin.getline(chrData2, 100);

-li ( strcmp (chrData1,chrData2)==0)
printf („Řetězce jsou stejné n');
jiný
printf („Řetězce nejsou stejné n');

návrat0;
}

Výstup:

Po spuštění kódu se hodnota řetězce „ Ahoj ‘Je uvedeno pro obě vstupní hodnoty a objeví se následující výstup.

Závěr:

V tomto kurzu byly ukázány tři způsoby porovnání řetězců v C ++ pomocí tří jednoduchých příkladů. V tomto kurzu bylo popsáno, jak pomoci novým programátorům v C ++, jak použití porovnávacího operátoru, tak vestavěných funkcí pro kontrolu rovnosti řetězců.