Hur man jämför sträng i C ++

How Compare String C



Att jämföra strängar är en mycket vanlig uppgift för alla programmeringsspråk. Den används huvudsakligen för att validera data, till exempel att kontrollera användarnamn och lösenord för inloggningsinformationen. Strängjämförelsen kan göras med hjälp av en jämförelseoperator eller med hjälp av inbyggda funktioner. Två strängjämförelsesfunktioner som används i C ++ är, strcmp () och jämföra() . De strcmp () är en biblioteksfunktion av C för att jämföra två strängar. C ompare () är en inbyggd funktion av C ++ för att jämföra två strängar. Sätten att jämföra strängar med jämförelseoperatorer och funktioner har förklarats i denna handledning.

Nödvändig förutsättning:

Innan du kontrollerar exemplen på den här självstudien måste du kontrollera att g ++ - kompilatorn är installerad eller inte i systemet. Om du använder Visual Studio Code installerar du nödvändiga tillägg för att kompilera källkoden C ++ för att skapa den körbara koden. Här har programmet Visual Studio Code använts för att kompilera och köra C ++ - koden.







Använda jämförelseoperator för att jämföra sträng:

Det vanligaste sättet att jämföra strängar i C ++ är att använda jämförelseoperatören. Dessa är lika (==) och inte lika (! =) Operatörer. Skapa en C ++ - fil med följande kod för att jämföra två strängvärden med hjälp av jämförelseoperatorn. Enligt koden kommer en URL -adress att tas från användaren och jämföras med andra strängar med en lika (==) operator. Om inmatningsvärdet matchar någon sträng av 'if' -villkoret, kommer det specifika meddelandet att skrivas ut. annars visas meddelandet i ”annars” -delen.



// Inkludera nödvändigt bibliotek

#omfatta

usingnamespace std;

i huvudsak() {
// Deklarera en strängvariabel
sträng url_addr;
// Ta en webbadress från användaren
kostaurl_addr;
// Jämför ingångsvärdet med en annan sträng med motsvarande operator
om(url_addr== 'Google com')
kosta<<'Det är en sökmotor på webbplatsen.'<<endl;
annat(url_addr== 'jooble.org')
kosta<<'Det är en arbetssökande webbplats.'<<endl;
annat(url_addr== 'linuxhint.com')
kosta<<'Det är en bloggwebbplats.'<<endl;
annan
kosta<<'Ingen information har lagts till för den här webbplatsen.'<<endl;

retur0;
}

Produktion:



Efter att koden har körts, om användaren skrev ' linuxhint.com 'Som inmatning kommer det tredje' om '-villkoret att returneras Sann, och följande utmatning visas.





Använd funktionen jämför () för att jämföra sträng:

Funktionen jämför () jämför två strängar och returnerar 0 eller 1 eller -1 baserat på matchningsresultatet av jämförelsen. Betydelsen av returvärdena ges nedan.



  • Funktionen returnerar 0 när båda jämförande strängarna är lika.
  • Funktionen returnerar 1 när den första strängen är större än den andra strängen.
  • Funktionen returnerar -1 när den första strängen är mindre än den andra strängen.

Syntax:

intsträng1.jämföra(string2)

Skapa en C ++ - fil med följande kod för att jämföra två strängvärden med två ingångsvärden med funktionen jämför (). Alla användares autentisering kan kontrolleras genom att jämföra de värden som användarna skickat in med värdena för den autentiserade användaren. Denna autentiseringsprocess har implementerats i följande kod. Den giltiga e -postadressen och lösenordet har lagrats i två strängvariabler här. Därefter har dessa värden jämförts med e -postadressen och lösenordet som användaren har tagit med jämför () fungera. Det logiska OCH operatören har använts i koden för att autentisera användaren. Framgångsmeddelandet skrivs ut om båda jämförelsefunktionerna () returnerar True. Annars skrivs felmeddelandet ut.

// Inkludera nödvändigt bibliotek

#omfatta

usingnamespace std;

i huvudsak() {

// Initiera två strängvariabler
sträng e -post('[e -postskyddad]');
stränglösenord('linuxhint');
// Deklarera två strängvariabler
string user_email;
string user_password;

// Ta e -postadressen från användaren
kostauser_email;

// Ta lösenordet från användaren
kostaanvändarlösenord;

// Kontrollera användarnamnet och lösenordet är giltigt eller ogiltigt
om (user_email.jämföra(e-post) == 0&&användarlösenord.jämföra(Lösenord) == 0 )
kosta<<'Autentisering lyckades.'<<endl;
annan
kosta<<'E -post eller lösenord är ogiltigt.'<<endl;

retur0;
}

Produktion:

Efter att koden har körts, om användaren skrev ' [e -postskyddad] 'Som e -postadress och' 12345 'Som lösenord kommer det tredje' if '-villkoret att returneras Falsk, och följande utmatning visas.

Efter att ha kört koden igen, om användaren skrev ' [e -postskyddad] 'Som e -postadress och' linuxhint 'Som lösenord kommer det tredje' if '-villkoret att returneras Sann, och följande utmatning visas.

Med funktionen strcmp () för att jämföra sträng:

Strcmp () är en annan funktion för att jämföra strängar i C ++. Det returnerar sant om båda de jämförande strängarna är lika. Inmatningsparametrarna som tas med denna funktion skiljer sig från jämförelse () -funktionen. Jämförningsfunktionen tar ett strängvärde som en parameter, och funktionen strcmp () tar char -matrisen som en parameter. Syntaxen för denna funktion ges nedan.

Syntax:

int strcmp ( konst röding *str1, konst röding *str2);

Skapa en C ++ - fil med följande kod för att jämföra två strängar med funktionen strcmp (). Två teckenuppsättningar med 100 element har deklarerats i koden för att lagra strängvärdena som tagits av användarna. De getline () -funktionen används för att lagra användarens inmatning i variabeln char array. Därefter, strcmp () funktionen har använts för att kontrollera att ingångsvärdena är lika eller inte. Om funktionen återkommer Sann, då kommer framgångsmeddelandet att skrivas ut; annars skrivs felmeddelandet ut,

// Inkludera nödvändiga bibliotek

#omfatta

#omfatta

usingnamespace std;

i huvudsak() {
// Radera två strängvariabler
rödingchrData1[100],chrData2[100];

// Ta den första strängdata
kosta<<'Ange den första strängen:';
gin.getline(chrData1, 100);
// Ta den andra strängdata
kosta<<'Ange den andra strängen:';
gin.getline(chrData2, 100);

om ( strcmp (chrData1,chrData2)==0)
printf ('Strängarna är lika n');
annan
printf ('Strängarna är inte lika n');

retur0;
}

Produktion:

Efter att koden har körts, strängvärdet, ' Hej 'Ges för båda ingångsvärdena, och följande utdata visas.

Slutsats:

Tre sätt att jämföra strängar i C ++ har visats i denna handledning med hjälp av tre enkla exempel. Både jämförelseoperatörens användningsområden och de inbyggda funktionerna för att kontrollera strängarnas likhet har beskrivits i denna handledning för att hjälpa de nya C ++-programmerarna.