Hvordan sammenligne streng i C ++

How Compare String C



Å sammenligne strenger er en veldig vanlig oppgave for ethvert programmeringsspråk. Den brukes hovedsakelig for å validere dataene, for eksempel å kontrollere brukernavn og passord for påloggingsinformasjonen. Strengesammenligningen kan gjøres ved å bruke en sammenligningsoperator eller ved å bruke innebygde funksjoner. To strengsammenligningsfunksjoner som brukes i C ++ er, strcmp () og sammenligne() . De strcmp () er en biblioteksfunksjon av C for å sammenligne to strenger. C ompare () er en innebygd funksjon av C ++ for å sammenligne to strenger. Måtene å sammenligne strenger ved hjelp av sammenligningsoperatorer og funksjoner er blitt forklart i denne opplæringen.

Forutsetning:

Før du sjekker eksemplene på denne opplæringen, må du kontrollere at g ++ - kompilatoren er installert eller ikke i systemet. Hvis du bruker Visual Studio Code, må du installere de nødvendige utvidelsene for å kompilere C ++ - kildekoden for å lage den kjørbare koden. Her har Visual Studio Code -applikasjonen blitt brukt til å kompilere og utføre C ++ - koden.







Bruk sammenligningsoperator til å sammenligne streng:

Den vanligste måten å sammenligne strenger i C ++ er å bruke sammenligningsoperatoren. Disse er like (==) og ikke like (! =) Operatører. Opprett en C ++ - fil med følgende kode for å sammenligne to strengverdier ved hjelp av sammenligningsoperatoren. I henhold til koden vil en URL -adresse bli tatt fra brukeren og sammenlignet med andre strenger ved hjelp av en lik (==) operator. Hvis inngangsverdien samsvarer med en streng av 'if' -tilstanden, skrives den spesifikke meldingen ut; Hvis ikke, vises meldingen til 'annet' -delen.



// Inkluder nødvendig bibliotek

#inkludere

usingnamespace std;

i hovedsak() {
// Deklarere en strengvariabel
string url_addr;
// Ta en url -adresse fra brukeren
kosteurl_addr;
// Sammenlign inngangsverdien med en annen streng ved å bruke tilsvarende operator
hvis(url_addr== 'Google com')
koste<<'Det er en søkemotor på nett.'<<endl;
eller hvis(url_addr== 'jooble.org')
koste<<'Det er et jobbsøkende nettsted.'<<endl;
eller hvis(url_addr== 'linuxhint.com')
koste<<'Det er et bloggenettsted.'<<endl;
ellers
koste<<'Ingen informasjon er lagt til for dette nettstedet.'<<endl;

retur 0;
}

Produksjon:



Etter å ha utført koden, hvis brukeren skrev ' linuxhint.com 'Som input, vil den tredje' if '-tilstanden bli returnert Ekte, og følgende utgang vises.





Bruk sammenligning () -funksjonen til å sammenligne streng:

Sammenlign () -funksjonen sammenligner to strenger og returnerer 0 eller 1 eller -1 basert på det matchende resultatet av sammenligningen. Betydningen av returverdiene er gitt nedenfor.



  • Funksjonen returnerer 0 når begge sammenligningsstrengene er like.
  • Funksjonen returnerer 1 når den første strengen er større enn den andre strengen.
  • Funksjonen returnerer -1 når den første strengen er mindre enn den andre strengen.

Syntaks:

intstreng1.sammenligne(streng2)

Opprett en C ++ - fil med følgende kode for å sammenligne to strengverdier med to inngangsverdier ved hjelp av sammenligningsfunksjonen (). Autentisering av enhver bruker kan kontrolleres ved å sammenligne verdiene som er sendt av brukerne med verdiene til den godkjente brukeren. Denne godkjenningsprosessen er implementert i følgende kode. Den gyldige e -postadressen og passordet er lagret i to strengvariabler her. Deretter har disse verdiene blitt sammenlignet med e -postadressen og passordet som er tatt fra brukeren sammenligne () funksjon. Det logiske OG operatøren har blitt brukt i koden for å autentisere brukeren. Suksessmeldingen skrives ut hvis begge sammenligningsfunksjonene () returnerer True. Ellers skrives feilmeldingen ut.

// Inkluder nødvendig bibliotek

#inkludere

usingnamespace std;

i hovedsak() {

// Initialiser to strengvariabler
streng e -post('[e -postbeskyttet]');
strengpassord('linuxhint');
// Deklarere to strengvariabler
string user_email;
string user_password;

// Ta e -postadressen fra brukeren
kosteuser_email;

// Ta passordet fra brukeren
kostebruker passord;

// Sjekk brukernavnet og passordet er gyldig eller ugyldig
hvis (user_email.sammenligne(e -post) == 0&&bruker passord.sammenligne(passord) == 0 )
koste<<'Godkjenning vellykket.'<<endl;
ellers
koste<<'E -post eller passord er ugyldig.'<<endl;

retur 0;
}

Produksjon:

Etter å ha utført koden, hvis brukeren skrev ' [e -postbeskyttet] 'Som e -postadresse og' 12345 'Som passord, vil den tredje' if '-tilstanden bli returnert Falsk, og følgende utgang vises.

Etter å ha utført koden igjen, hvis brukeren skrev ' [e -postbeskyttet] 'Som e -postadresse og' linuxhint 'Som passord, vil den tredje' if '-tilstanden bli returnert Ekte, og følgende utgang vises.

Bruke strcmp () -funksjonen for å sammenligne streng:

Strcmp () er en annen funksjon for å sammenligne strenger i C ++. Det returnerer sant hvis begge de sammenlignende strengene er like. Inndataparametrene som tas av denne funksjonen er forskjellige fra sammenligningsfunksjonen (). Sammenlikningsfunksjonen tar en strengverdi som en parameter, og strcmp () -funksjonen tar char -matrisen som en parameter. Syntaksen til denne funksjonen er gitt nedenfor.

Syntaks:

int strcmp ( konst røye *str1, konst røye *str2);

Lag en C ++ - fil med følgende kode for å sammenligne to strenger ved hjelp av funksjonen strcmp (). To tegnfiler med 100 elementer er deklarert i koden for å lagre strengverdiene tatt av brukerne. De getline () -funksjonen brukes til å lagre brukerens input i char -array -variablene. Deretter vil strcmp () funksjonen har brukt for å kontrollere at inngangsverdiene er like eller ikke. Hvis funksjonen returnerer Ekte, så vil suksessmeldingen skrives ut; Ellers skrives feilmeldingen ut,

// Inkluder nødvendige biblioteker

#inkludere

#inkludere

usingnamespace std;

i hovedsak() {
// Deler to strengvariabler
røyechrData1[100],chrData2[100];

// Ta de første strengdataene
koste<<'Skriv inn den første strengen:';
gin.getline(chrData1, 100);
// Ta den andre strengen data
koste<<'Skriv inn den andre strengen:';
gin.getline(chrData2, 100);

hvis ( strcmp (chrData1,chrData2)==0)
printf ('Strengene er like n');
ellers
printf ('Strengene er ikke like n');

retur 0;
}

Produksjon:

Etter å ha utført koden, vil strengverdien ' Hallo 'Er gitt for begge inngangsverdiene, og følgende utgang vil vises.

Konklusjon:

Tre måter å sammenligne strenger i C ++ har blitt vist i denne opplæringen ved å bruke tre enkle eksempler. Både bruken av sammenligningsoperatoren og de innebygde funksjonene for å kontrollere likhetene mellom strengene er beskrevet i denne opplæringen for å hjelpe de nye C ++-programmererne.