Kuidas võrrelda stringe C ++ keeles

How Compare String C



Stringide võrdlemine on iga programmeerimiskeele jaoks väga levinud ülesanne. Seda kasutatakse peamiselt andmete valideerimiseks, näiteks sisselogimisandmete kasutajanime ja parooli kontrollimiseks. Stringide võrdlust saab teha võrdlusoperaatori või sisseehitatud funktsioonide abil. C ++ puhul kasutatakse kahte stringide võrdlusfunktsiooni, strcmp () ja võrdlema() . The strcmp () on C raamatukogu funktsioon kahe stringi võrdlemiseks. C ompare () on C ++ sisseehitatud funktsioon kahe stringi võrdlemiseks. Selles juhendis on selgitatud võimalusi stringide võrdlemiseks, kasutades võrdlusoperaatoreid ja funktsioone.

Eeltingimus:

Enne selle õpetuse näidete kontrollimist peate kontrollima, kas kompilaator g ++ on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks vajalikud laiendused C ++ lähtekoodi kompileerimiseks. Siin on C ++ koodi koostamiseks ja käivitamiseks kasutatud rakendust Visual Studio Code.







Võrdlusoperaatori kasutamine stringi võrdlemiseks:

Kõige tavalisem viis C ++ stringide võrdlemiseks on võrdlusoperaatori kasutamine. Need on võrdsed (==) ja mitte võrdsed (! =) Operaatorid. Kahe stringiväärtuse võrdlemiseks võrdlusoperaatori abil looge järgmise koodiga C ++ -fail. Vastavalt koodile võetakse kasutajalt URL -aadress ja võrreldakse seda teiste stringidega, kasutades võrdset (==) operaatorit. Kui sisendväärtus langeb kokku tingimuse „kui” mis tahes stringiga, prinditakse konkreetne teade; vastasel juhul kuvatakse osa „muu” teade.



// Kaasa vajalik raamatukogu

#kaasake

kasutades nimeruumi std;

sisimas() {
// Stringi muutuja deklareerimine
string url_addr;
// Võtke kasutajalt URL -aadress
kuluurl_addr;
// Võrdle sisendväärtust teise stringi abil, kasutades samaväärset operaatorit
kui(url_addr== 'Google com')
kulu<<'See on otsingumootori veebisait.'<<endl;
elseif(url_addr== 'jooble.org')
kulu<<'See on tööotsimise veebisait.'<<endl;
elseif(url_addr== 'linuxhint.com')
kulu<<'See on ajaveebi veebisait.'<<endl;
muidu
kulu<<'Selle saidi kohta pole teavet lisatud.'<<endl;

tagasitulek0;
}

Väljund:



Kui kasutaja on pärast koodi täitmist sisestanud „ linuxhint.com „Sisendina tagastatakse kolmas tingimus„ kui ” Tõsi, ja kuvatakse järgmine väljund.





Funktsiooni võrrelda () kasutamine stringi võrdlemiseks:

Funktsioon võrrelda () võrdleb kahte stringi ja tagastab võrdluse vastava tulemuse põhjal 0 või 1 või -1. Tagastusväärtuste tähendus on toodud allpool.



  • Funktsioon tagastab 0, kui mõlemad võrdlevad stringid on võrdsed.
  • Funktsioon tagastab 1, kui esimene string on suurem kui teine.
  • Funktsioon tagastab -1, kui esimene string on väiksem kui teine.

Süntaks:

intstring1.võrdlema(string2)

Looge järgmise koodiga C ++ fail, et võrrelda kahte stringiväärtust kahe sisendväärtusega, kasutades funktsiooni võrrelda (). Iga kasutaja autentimist saab kontrollida, võrreldes kasutajate esitatud väärtusi autentitud kasutaja väärtustega. See autentimisprotsess on rakendatud järgmises koodis. Kehtiv e -posti aadress ja parool on siin salvestatud kaheks stringimuutujaks. Järgmisena on neid väärtusi võrreldud e -posti aadressi ja parooliga, mis on võetud kasutajalt võrdlema () funktsiooni. Loogiline JA kasutaja autentimiseks on koodis kasutatud operaatorit. Edusõnum prinditakse, kui mõlemad võrdlusfunktsioonid () tagastavad tõese. Vastasel juhul trükitakse tõrketeade.

// Kaasa vajalik raamatukogu

#kaasake

kasutades nimeruumi std;

sisimas() {

// Initsialiseeri kaks stringimuutujat
string e -kiri('[email protected]');
stringi parool('linuxhint');
// Kahe stringimuutuja deklareerimine
string kasutaja_meil;
string kasutaja_parool;

// Võtke kasutajalt e -posti aadress
kulukasutaja_meil;

// Võtke kasutajalt parool
kulukasutaja_parool;

// Kontrollige kasutajanime ja parooli kehtivust või kehtetust
kui (kasutaja_meil.võrdlema(meilile) == 0&&kasutaja_parool.võrdlema(parool) == 0 )
kulu<<„Autentimine õnnestus.”<<endl;
muidu
maksma<<'E -posti aadress või parool on kehtetu.'<<endl;

tagasitulek0;
}

Väljund:

Kui kasutaja on pärast koodi täitmist sisestanud „ [e -post kaitstud] 'E -posti aadressina ja' 12345 'Paroolina tagastatakse kolmas tingimus' kui ' Vale, ja kuvatakse järgmine väljund.

Kui kasutaja on pärast koodi uuesti täitmist sisestanud „ [e -post kaitstud] 'E -posti aadressina ja' linuxhint 'Paroolina tagastatakse kolmas tingimus' kui ' Tõsi, ja kuvatakse järgmine väljund.

Funktsiooni strcmp () kasutamine stringi võrdlemiseks:

Strcmp () on veel üks funktsioon C ++ stringide võrdlemiseks. See tagastab tõese, kui mõlemad võrdlevad stringid on võrdsed. Selle funktsiooni sisendparameetrid erinevad funktsioonist võrrelda (). Võrdlusfunktsioon võtab parameetrina stringiväärtuse ja funktsioon strcmp () võtab parameetriks char -massiivi. Selle funktsiooni süntaks on toodud allpool.

Süntaks:

int strcmp ( const süsi *str1, const süsi *str2);

Looge järgmise koodiga C ++ fail, et võrrelda kahte stringi, kasutades funktsiooni strcmp (). Kasutajate võetud stringiväärtuste salvestamiseks on koodis deklareeritud kaks 100 elemendist koosnevat märgimassiivi. The getline () funktsiooni kasutatakse kasutaja sisendi salvestamiseks char -massiivi muutujatesse. Edasi, strcmp () funktsioon on kontrollinud sisendväärtuste võrdsust või mitte. Kui funktsioon naaseb Tõsi, siis trükitakse edusõnum; vastasel juhul trükitakse tõrketeade,

// Kaasa vajalikud teegid

#kaasake

#kaasake

kasutades nimeruumi std;

sisimas() {
// Delare kaks string muutujat
süsichrData1[100],chrData2[100];

// Võtke esimesed stringi andmed
kulu<<'Sisestage esimene string:';
džinn.getline(chrData1, 100);
// Võtke teise stringi andmed
kulu<<'Sisestage teine ​​string:';
džinn.getline(chrData2, 100);

kui ( strcmp (chrData1,chrData2)==0)
printf ('Nöörid on võrdsed n');
muidu
printf ('Nöörid pole võrdsed n');

tagasitulek0;
}

Väljund:

Pärast koodi täitmist kuvatakse stringi väärtus „ Tere 'On antud mõlema sisendväärtuse jaoks ja kuvatakse järgmine väljund.

Järeldus:

Selles õpetuses on kolme lihtsa näite abil näidatud kolme võimalust stringide võrdlemiseks C ++ keeles. Selles juhendis on kirjeldatud nii võrdlusoperaatori kasutamist kui ka sisseehitatud funktsioone stringide võrdsuse kontrollimiseks, et aidata uusi C ++ programmeerijaid.