String vergelijken in C++

How Compare String C



Het vergelijken van strings is een veel voorkomende taak voor elke programmeertaal. Het wordt voornamelijk gebruikt voor het valideren van de gegevens, zoals het controleren van de gebruikersnaam en het wachtwoord van de inloggegevens. De stringvergelijking kan worden gedaan door een vergelijkingsoperator te gebruiken of door ingebouwde functies te gebruiken. Twee tekenreeksvergelijkingsfuncties die in C ++ worden gebruikt, zijn, strcmp() en vergelijken() . De strcmp() is een bibliotheekfunctie van C om twee strings te vergelijken. de c vergelijken () is een ingebouwde functie van C++ om twee strings te vergelijken. De manieren om strings te vergelijken met behulp van vergelijkingsoperatoren en functies zijn in deze zelfstudie uitgelegd.

Voorwaarde:

Voordat u de voorbeelden van deze tutorial bekijkt, moet u controleren of de g++-compiler is geïnstalleerd of niet in het systeem. Als u Visual Studio Code gebruikt, installeer dan de benodigde extensies om de C++-broncode te compileren om de uitvoerbare code te maken. Hier is de toepassing Visual Studio Code gebruikt om de C++-code te compileren en uit te voeren.







Vergelijkingsoperator gebruiken om string te vergelijken:

De meest gebruikelijke manier om strings in C++ te vergelijken, is door de vergelijkingsoperator te gebruiken. Dit zijn gelijke (==) en niet gelijk (!=) operators. Maak een C++-bestand met de volgende code om twee tekenreekswaarden te vergelijken met behulp van de vergelijkingsoperator. Volgens de code wordt een URL-adres van de gebruiker genomen en vergeleken met andere strings met behulp van een gelijke (==) operator. Als de invoerwaarde overeenkomt met een tekenreeks van de 'if'-voorwaarde, wordt het specifieke bericht afgedrukt; anders wordt het bericht van het gedeelte 'anders' weergegeven.



//Benodigde bibliotheek opnemen

#erbij betrekken

namespace std; gebruiken;

intmain() {
// Declareer een stringvariabele
string url_addr;
// Neem een ​​url-adres van de gebruiker
kostenurl_addr;
// Vergelijk de invoerwaarde met een andere tekenreeks met behulp van een equivalente operator
indien(url_addr== 'Google com')
kosten<<'Het is een zoekmachine wensite.'<<eindel;
anders(url_addr== 'jooble.org')
kosten<<'Het is een website voor het zoeken naar werk.'<<eindel;
anders(url_addr== 'linuxhint.com')
kosten<<'Het is een blogwebsite.'<<eindel;
anders
kosten<<'Er is geen informatie toegevoegd voor deze site.'<<eindel;

return0;
}

Uitgang:



Als de gebruiker na het uitvoeren van de code ' linuxhint.com ' als invoer, de derde 'als'-voorwaarde wordt geretourneerd Waar, en de volgende uitvoer zal verschijnen.





De functie vergelijken () gebruiken om string te vergelijken:

De functie vergelijk () vergelijkt twee tekenreeksen en retourneert 0 of 1 of -1 op basis van het overeenkomende resultaat van de vergelijking. De betekenis van de retourwaarden wordt hieronder gegeven.



  • De functie retourneert 0 wanneer beide vergelijkende strings gelijk zijn.
  • De functie retourneert 1 wanneer de eerste string groter is dan de tweede string.
  • De functie retourneert -1 wanneer de eerste string kleiner is dan de tweede string.

Syntaxis:

inttekenreeks1.vergelijken(string2)

Maak een C++-bestand met de volgende code om twee tekenreekswaarden te vergelijken met twee invoerwaarden met behulp van de functie vergelijk (). De authenticatie van elke gebruiker kan worden gecontroleerd door de waarden die door de gebruikers zijn ingediend te vergelijken met de waarden van de geverifieerde gebruiker. Dit authenticatieproces is geïmplementeerd in de volgende code. Het geldige e-mailadres en wachtwoord zijn hier in twee stringvariabelen opgeslagen. Vervolgens zijn deze waarden vergeleken met het e-mailadres en het wachtwoord van de gebruiker met behulp van vergelijken () functie. de logische EN operator is gebruikt in de code om de gebruiker te authenticeren. Het succesbericht wordt afgedrukt als beide functies vergelijken () True retourneren. Anders wordt het foutbericht afgedrukt.

//Benodigde bibliotheek opnemen

#erbij betrekken

namespace std; gebruiken;

intmain() {

// Initialiseer twee tekenreeksvariabelen
string e-mail(' [e-mail beveiligd]');
string wachtwoord('linuxhint');
//Declareer twee stringvariabelen
string gebruiker_e-mail;
tekenreeks gebruiker_wachtwoord;

//Neem het e-mailadres van de gebruiker
kostengebruiker_e-mail;

//Neem het wachtwoord van de gebruiker
kostengebruikerswachtwoord;

// Controleer of de gebruikersnaam en het wachtwoord geldig of ongeldig zijn
indien (gebruiker_e-mail.vergelijken(e-mail) == 0&&gebruikerswachtwoord.vergelijken(wachtwoord) == 0 )
kosten<<'Authenticatie geslaagd.'<<eindel;
anders
kosten<<'E-mailadres of wachtwoord is ongeldig.'<<eindel;

return0;
}

Uitgang:

Als de gebruiker na het uitvoeren van de code ' [e-mail beveiligd] ' als e-mailadres en ' 12345 ' als wachtwoord, de derde 'als'-voorwaarde wordt geretourneerd vals, en de volgende uitvoer zal verschijnen.

Als de gebruiker na het opnieuw uitvoeren van de code ' [e-mail beveiligd] ' als e-mailadres en ' linuxhint ' als wachtwoord, de derde 'als'-voorwaarde wordt geretourneerd Waar, en de volgende uitvoer zal verschijnen.

De functie strcmp() gebruiken om string te vergelijken:

De strcmp() is een andere functie om strings in C++ te vergelijken. Het retourneert waar als beide vergelijkende tekenreeksen gelijk zijn. De invoerparameters die door deze functie worden gebruikt, verschillen van de functie Compare(). De vergelijkingsfunctie neemt een tekenreekswaarde als parameter en de functie strcmp() neemt de char-array als parameter. De syntaxis van deze functie wordt hieronder gegeven.

Syntaxis:

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

Maak een C++-bestand met de volgende code om twee tekenreeksen te vergelijken met de functie strcmp(). Er zijn twee tekenreeksen van 100 elementen gedeclareerd in de code om de door de gebruikers genomen tekenreekswaarden op te slaan. De getlijn() functie wordt gebruikt om de invoer van de gebruiker op te slaan in de char array-variabelen. Volgende, de strcmp() functie heeft gebruikt om te controleren of de invoerwaarden gelijk zijn of niet. Als de functie terugkeert Waar, dan wordt het succesbericht afgedrukt; anders wordt het foutbericht afgedrukt,

//Benodigde bibliotheken opnemen

#erbij betrekken

#erbij betrekken

namespace std; gebruiken;

intmain() {
//Verwijder twee tekenreeksvariabelen
charchrData1[100],chrData2[100];

//Neem de eerste stringgegevens
kosten<<'Voer de eerste string in:';
gin.getline(chrData1, 100);
//Neem de tweede string data
kosten<<'Voer de tweede string in:';
gin.getline(chrData2, 100);

indien ( strcmp (chrData1,chrData2)==0)
printf ('De snaren zijn gelijk'N');
anders
printf ('De snaren zijn niet gelijk'N');

return0;
}

Uitgang:

Na het uitvoeren van de code, de tekenreekswaarde, ' Hallo ' wordt gegeven voor beide invoerwaarden en de volgende uitvoer verschijnt.

Conclusie:

In deze zelfstudie zijn drie manieren getoond om strings in C++ te vergelijken aan de hand van drie eenvoudige voorbeelden. Zowel het gebruik van de vergelijkingsoperator als de ingebouwde functies voor het controleren van de gelijkheid van de strings zijn in deze tutorial beschreven om de nieuwe C++-programmeurs te helpen.