Ako porovnať reťazec v C ++

How Compare String C



Porovnávanie reťazcov je veľmi bežnou úlohou v každom programovacom jazyku. Slúži predovšetkým na validáciu údajov, ako je kontrola používateľského mena a hesla prihlasovacích údajov. Porovnanie reťazcov je možné vykonať pomocou porovnávacieho operátora alebo pomocou vstavaných funkcií. Dve porovnávacie funkcie reťazcov používané v jazyku C ++ sú, strcmp () a porovnať () . The strcmp () je knižničná funkcia C na porovnanie dvoch reťazcov. C ompare () je vstavaná funkcia C ++ na porovnávanie dvoch reťazcov. V tomto návode boli vysvetlené spôsoby porovnávania reťazcov pomocou porovnávacích operátorov a funkcií.

Predpoklad:

Pred kontrolou príkladov tohto tutoriálu musíte skontrolovať, či je kompilátor g ++ v systéme nainštalovaný alebo nie. Ak používate kód Visual Studio, nainštalujte si potrebné rozšírenia na kompiláciu zdrojového kódu C ++ na vytvorenie spustiteľného kódu. Tu bola aplikácia Visual Studio Code použitá na kompiláciu a spustenie kódu C ++.







Na porovnanie reťazca použite operátor porovnávania:

Najbežnejším spôsobom porovnávania reťazcov v C ++ je použitie porovnávacieho operátora. Jedná sa o rovnaké (==) a nie rovnaké (! =) Operátory. Vytvorte súbor C ++ s nasledujúcim kódom na porovnanie dvoch reťazcových hodnôt pomocou operátora porovnania. Podľa kódu bude používateľovi prevzatá adresa URL a porovnaná s inými reťazcami pomocou rovnakého (==) operátora. Ak sa vstupná hodnota zhoduje s akýmkoľvek reťazcom podmienky „if“, konkrétna správa sa vytlačí; v opačnom prípade sa zobrazí správa časti „else“.



// Zahrňte potrebnú knižnicu

#zahrnúť

usingnamespace std;

intmain() {
// Deklarujte reťazcovú premennú
reťazec url_addr;
// Prevezmite adresu URL od používateľa
nákladyurl_addr;
// Porovnajte vstupnú hodnotu s iným reťazcom pomocou ekvivalentného operátora
keby(url_addr== „Google com“)
náklady<<'Je to stránka vyhľadávacieho nástroja.'<<endl;
ináč Ak(url_addr== 'jooble.org')
náklady<<'Je to webová stránka hľadajúca prácu.'<<endl;
ináč Ak(url_addr== 'linuxhint.com')
náklady<<'Je to blogový server.'<<endl;
inak
náklady<<'Pre túto stránku nie sú pridané žiadne informácie.'<<endl;

návrat0;
}

Výkon:



Ak po spustení kódu používateľ zadal „ linuxhint.com “Ako vstup sa vráti tretia podmienka„ ak “ Pravda, a zobrazí sa nasledujúci výstup.





Na porovnanie reťazca sa používa funkcia porovnať ():

Funkcia porovnať () porovná dva reťazce a vráti 0 alebo 1 alebo -1 na základe zodpovedajúceho výsledku porovnania. Význam návratových hodnôt je uvedený nižšie.



  • Funkcia vráti hodnotu 0, ak sú oba porovnávacie reťazce rovnaké.
  • Funkcia vráti hodnotu 1, ak je prvý reťazec väčší ako druhý reťazec.
  • Funkcia vráti hodnotu -1, ak je prvý reťazec menší ako druhý reťazec.

Syntax:

intreťazec 1.porovnať(reťazec2)

Vytvorte súbor C ++ s nasledujúcim kódom na porovnanie dvoch reťazcových hodnôt s dvoma vstupnými hodnotami pomocou funkcie porovnať (). Autentifikáciu ľubovoľného používateľa je možné skontrolovať porovnaním hodnôt, ktoré odoslali používatelia, s hodnotami autentifikovaného používateľa. Tento proces autentifikácie bol implementovaný v nasledujúcom kóde. Platná e -mailová adresa a heslo tu boli uložené do dvoch reťazcových premenných. Ďalej sú tieto hodnoty porovnané s e -mailovou adresou a heslom prevzatým od používateľa pomocou porovnať () funkciu. Logické A Na autentifikáciu používateľa bol v kóde použitý operátor. Správa o úspechu sa vytlačí, ak obe funkcie porovnania () vrátia hodnotu True. V opačnom prípade sa vytlačí chybová správa.

// Zahrňte potrebnú knižnicu

#zahrnúť

usingnamespace std;

intmain() {

// Inicializácia dvoch reťazcových premenných
reťazcový e -mail('[email protected]');
reťazcové heslo('linuxhint');
// Deklarujte dve reťazcové premenné
reťazec user_email;
reťazec user_password;

// Prevezmite e -mailovú adresu od používateľa
nákladyuser_email;

// Prevezmite heslo od používateľa
nákladyužívateľské heslo;

// Skontrolujte, či sú používateľské meno a heslo platné alebo neplatné
keby (user_email.porovnať(e -mail) == 0&&užívateľské heslo.porovnať(heslo) == 0 )
náklady<<„Autentifikácia bola úspešná.“<<endl;
inak
náklady<<'E -mail alebo heslo je neplatné.'<<endl;

návrat0;
}

Výkon:

Ak po spustení kódu používateľ zadal „ [chránené e -mailom] „Ako e -mailová adresa“ 12345 „Ako heslo, vráti sa tretia podmienka„ ak “ Falošné, a zobrazí sa nasledujúci výstup.

Po opätovnom spustení kódu, ak používateľ zadal „ [chránené e -mailom] „Ako e -mailová adresa“ linuxhint „Ako heslo, vráti sa tretia podmienka„ ak “ Pravda, a zobrazí sa nasledujúci výstup.

Na porovnanie reťazca použite funkciu strcmp ():

Strcmp () je ďalšou funkciou na porovnávanie reťazcov v C ++. Vráti hodnotu true, ak sú oba porovnávacie reťazce rovnaké. Vstupné parametre prevzaté touto funkciou sa líšia od funkcie porovnať (). Funkcia porovnania má ako parameter hodnotu reťazca a funkcia strcmp () ako parameter parameter pole. Syntax tejto funkcie je uvedená nižšie.

Syntax:

int strcmp ( konšt char *str1, konšt char *str2);

Vytvorte súbor C ++ s nasledujúcim kódom na porovnanie dvoch reťazcov pomocou funkcie strcmp (). V kóde boli deklarované dve znakové polia so 100 prvkami na uloženie hodnôt reťazcov prijatých používateľmi. The getline () funkcia sa používa na uloženie vstupu používateľa do premenných poľa char. Ďalej, strcmp () funkcia použila na kontrolu, či sú vstupné hodnoty rovnaké alebo nie. Ak sa funkcia vráti Pravda, potom sa vytlačí správa o úspechu; v opačnom prípade sa vytlačí chybová správa,

// Zahrňte potrebné knižnice

#zahrnúť

#zahrnúť

usingnamespace std;

intmain() {
// Oddialenie dvoch reťazcových premenných
charchrData1[100],chrData2[100];

// Vezmite údaje prvého reťazca
náklady<<'Zadajte prvý reťazec:';
gin.getline(chrData1, 100);
// Vezmite údaje druhého reťazca
náklady<<'Zadajte druhý reťazec:';
gin.getline(chrData2, 100);

keby ( strcmp (chrData1,chrData2)==0)
printf („Reťazce sú rovnaké n');
inak
printf („Reťazce nie sú rovnaké n');

návrat0;
}

Výkon:

Po spustení kódu sa hodnota reťazca „ Ahoj „Je zadaný pre obe vstupné hodnoty a zobrazí sa nasledujúci výstup.

Záver:

V tomto tutoriále boli pomocou troch jednoduchých príkladov ukázané tri spôsoby porovnávania reťazcov v C ++. V tomto návode bolo popísané použitie operátora porovnávania a vstavaných funkcií na kontrolu rovnosti reťazcov, aby pomohli novým programátorom v jazyku C ++.