Sådan sammenlignes streng i C ++

How Compare String C



At sammenligne strenge er en meget almindelig opgave for ethvert programmeringssprog. Det bruges hovedsageligt til validering af dataene, f.eks. Kontrol af brugernavn og adgangskode til loginoplysningerne. Strengesammenligningen kan udføres ved hjælp af en sammenligningsoperator eller ved hjælp af indbyggede funktioner. To streng sammenligning funktioner, der bruges i C ++ er, strcmp () og sammenligne() . Det strcmp () er en biblioteksfunktion af C for at sammenligne to strenge. C ompare () er en indbygget funktion af C ++ til at sammenligne to strenge. Måderne til at sammenligne strenge ved hjælp af sammenligningsoperatorer og funktioner er blevet forklaret i denne vejledning.

Forudsætning:

Inden du kontrollerer eksemplerne på denne vejledning, skal du kontrollere, at g ++ - kompilatoren er installeret eller ikke i systemet. Hvis du bruger Visual Studio Code, skal du installere de nødvendige udvidelser for at kompilere C ++ - kildekoden for at oprette den eksekverbare kode. Her er Visual Studio Code -applikationen blevet brugt til at kompilere og eksekvere C ++ - koden.







Brug af sammenligningsoperator til at sammenligne streng:

Den mest almindelige måde at sammenligne strenge i C ++ er ved hjælp af sammenligningsoperatoren. Disse er lige (==) og ikke lige (! =) Operatører. Opret en C ++ - fil med følgende kode for at sammenligne to strengværdier ved hjælp af sammenligningsoperatoren. Ifølge koden vil en URL -adresse blive taget fra brugeren og sammenlignet med andre strenge ved hjælp af en lige (==) operator. Hvis inputværdien matcher en hvilken som helst streng af 'if' -tilstanden, udskrives den specifikke meddelelse; I modsat fald vises meddelelsen om 'andet' -delen.



// Inkluder det nødvendige bibliotek

#omfatte

usingnamespace std;

intmain() {
// Angiv en strengvariabel
string url_addr;
// Tag en url -adresse fra brugeren
kosteurl_addr;
// Sammenlign inputværdien med en anden streng ved hjælp af ækvivalent operator
hvis(url_addr== 'Google com')
koste<<'Det er en søgemaskine.'<<endl;
ellers(url_addr== 'jooble.org')
koste<<'Det er et jobsøgningswebsted.'<<endl;
ellers(url_addr== 'linuxhint.com')
koste<<'Det er et blogwebsted.'<<endl;
andet
koste<<'Der tilføjes ingen oplysninger om dette websted.'<<endl;

return0;
}

Produktion:



Efter at have udført koden, hvis brugeren skrev ' linuxhint.com 'Som input, vil den tredje' if' -tilstand blive returneret Sand, og følgende output vises.





Brug sammenligning () -funktionen til at sammenligne streng:

Funktionen sammenligne () sammenligner to strenge og returnerer 0 eller 1 eller -1 baseret på det matchende resultat af sammenligningen. Betydningen af ​​returværdierne er angivet nedenfor.



  • Funktionen returnerer 0, når begge sammenligningsstrenge er ens.
  • Funktionen returnerer 1, når den første streng er større end den anden streng.
  • Funktionen returnerer -1, når den første streng er mindre end den anden streng.

Syntaks:

intstreng 1.sammenligne(streng2)

Opret en C ++ - fil med følgende kode for at sammenligne to strengværdier med to inputværdier ved hjælp af sammenligningsfunktionen (). Enhver brugers godkendelse kan kontrolleres ved at sammenligne de værdier, der indsendes af brugerne, med værdierne for den godkendte bruger. Denne godkendelsesproces er blevet implementeret i følgende kode. Den gyldige e -mail -adresse og adgangskode er gemt i to strengvariabler her. Derefter er disse værdier blevet sammenlignet med e -mailadressen og adgangskoden taget fra brugeren ved hjælp af sammenligne () fungere. Det logiske OG operator er blevet brugt i koden til at godkende brugeren. Succesmeddelelsen udskrives, hvis begge sammenligningsfunktionerne () returnerer True. Ellers udskrives fejlmeddelelsen.

// Inkluder det nødvendige bibliotek

#omfatte

usingnamespace std;

intmain() {

// Initialiser to strengvariabler
streng e -mail('[email protected]');
strengadgangskode('linuxhint');
// Deklarere to strengvariabler
string user_email;
string user_password;

// Tag e -mail -adressen fra brugeren
kosteuser_email;

// Tag adgangskoden fra brugeren
kosteuser_password;

// Kontroller brugernavnet og adgangskoden er gyldig eller ugyldig
hvis (user_email.sammenligne(e -mail) == 0&&user_password.sammenligne(adgangskode) == 0 )
koste<<'Godkendelse lykkedes.'<<endl;
andet
koste<<'E -mail eller adgangskode er ugyldig.'<<endl;

return0;
}

Produktion:

Efter at have udført koden, hvis brugeren skrev ' [e -mail beskyttet] 'Som e -mail -adresse og' 12345 'Som adgangskode, vil den tredje' if' -tilstand blive returneret Falsk, og følgende output vises.

Efter at have udført koden igen, hvis brugeren skrev ' [e -mail beskyttet] 'Som e -mail -adresse og' linuxhint 'Som adgangskode, vil den tredje' if' -tilstand blive returneret Sand, og følgende output vises.

Brug af funktionen strcmp () til at sammenligne streng:

Strcmp () er en anden funktion til sammenligning af strenge i C ++. Det returnerer sandt, hvis begge de sammenlignende strenge er ens. De inputparametre, der tages af denne funktion, er forskellige fra sammenligningsfunktionen (). Sammenligningsfunktionen tager en strengværdi som en parameter, og funktionen strcmp () tager char -arrayet som en parameter. Syntaksen for denne funktion er angivet nedenfor.

Syntaks:

int strcmp ( konst forkælelse *str1, konst forkælelse *str2);

Opret en C ++ - fil med følgende kode for at sammenligne to strenge ved hjælp af funktionen strcmp (). To tegnarrays med 100 elementer er blevet erklæret i koden for at gemme de strengværdier, som brugerne har taget. Det getline () funktion bruges til at gemme brugerens input i char array variablerne. Dernæst strcmp () funktion har brugt til at kontrollere, at inputværdierne er ens eller ej. Hvis funktionen vender tilbage Sand, derefter vil succesbeskeden blive udskrevet; ellers udskrives fejlmeddelelsen,

// Inkluder nødvendige biblioteker

#omfatte

#omfatte

usingnamespace std;

intmain() {
// Slet to strengvariabler
forkælelsechrData1[100],chrData2[100];

// Tag de første strengdata
koste<<'Indtast den første streng:';
gin.getline(chrData1, 100);
// Tag den anden strengdata
koste<<'Indtast den anden streng:';
gin.getline(chrData2, 100);

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

return0;
}

Produktion:

Efter udførelse af koden, strengværdien, ' Hej 'Er givet for begge inputværdier, og følgende output vises.

Konklusion:

Tre måder at sammenligne strenge i C ++ er blevet vist i denne vejledning ved hjælp af tre enkle eksempler. Både sammenligningsoperatorens anvendelser og de indbyggede funktioner til kontrol af strengenes lighed er blevet beskrevet i denne vejledning for at hjælpe de nye C ++-programmører.