Kuinka verrata merkkijonoa C ++: ssa

How Compare String C



Merkkijonojen vertailu on hyvin yleinen tehtävä mille tahansa ohjelmointikielelle. Sitä käytetään pääasiassa tietojen validointiin, kuten kirjautumistietojen käyttäjänimen ja salasanan tarkistamiseen. Merkkijonojen vertailu voidaan tehdä käyttämällä vertailuoperaattoria tai sisäänrakennettuja toimintoja. C ++: ssa käytetään kahta merkkijonojen vertailutoimintoa, strcmp () ja vertailla() . The strcmp () on C: n kirjastotoiminto kahden merkkijonon vertaamiseksi. C ompare () on C ++: n sisäänrakennettu toiminto kahden merkkijonon vertaamiseen. Tässä opetusohjelmassa on selitetty tapoja verrata merkkijonoja vertailuoperaattoreiden ja -toimintojen avulla.

Edellytys:

Ennen kuin tarkistat tämän opetusohjelman esimerkit, sinun on tarkistettava, että g ++ -kääntäjä on asennettu tai ei järjestelmään. Jos käytät Visual Studio Codea, asenna tarvittavat laajennukset C ++ -lähdekoodin kääntämiseksi suoritettavan koodin luomiseksi. Tässä Visual Studio Code -sovellusta on käytetty C ++ -koodin kääntämiseen ja suorittamiseen.







Vertailuoperaattorin käyttäminen merkkijonon vertaamiseen:

Yleisin tapa verrata merkkijonoja C ++: ssa on käyttää vertailuoperaattoria. Nämä ovat yhtäläisiä (==) eivätkä yhtä suuria (! =) Operaattoreita. Luo C ++ -tiedosto seuraavalla koodilla vertaamaan kahta merkkijonoarvoa vertailuoperaattorin avulla. Koodin mukaan URL -osoite otetaan käyttäjältä ja verrataan muihin merkkijonoihin käyttämällä yhtä (==) -operaattoria. Jos syötetty arvo vastaa mitä tahansa 'jos' -ehdon merkkijonoa, kyseinen viesti tulostetaan; Muussa tapauksessa 'muu' -osan viesti tulee näkyviin.



// Sisällytä tarvittava kirjasto

#sisältää

usingnamespace std;

sisäpuolella() {
// Ilmoita merkkijonomuuttuja
merkkijono url_addr;
// Ota käyttäjän URL -osoite
kustannusurl_addr;
// Vertaa syöttöarvoa toiseen merkkijonoon vastaavaa operaattoria käyttäen
jos(url_addr== 'Google com')
kustannus<<'Se on hakukoneen wensite.'<<endl;
muuten jos(url_addr== 'jooble.org')
kustannus<<'Se on työnhakusivusto.'<<endl;
muuten jos(url_addr== 'linuxhint.com')
kustannus<<'Se on blogisivusto.'<<endl;
muu
kustannus<<'Tälle sivustolle ei lisätä tietoja.'<<endl;

paluu0;
}

Lähtö:



Jos käyttäjä on kirjoittanut koodin suorittamisen jälkeen ' linuxhint.com 'Syötteenä' kolmas 'jos' -ehto palautetaan Totta, ja seuraava lähtö tulee näkyviin.





Käytä vertailu () -funktiota merkkijonon vertaamiseen:

Vertailu () -funktio vertaa kahta merkkijonoa ja palauttaa 0 tai 1 tai -1 vertailun vastaavan tuloksen perusteella. Palautusarvojen merkitys on annettu alla.



  • Funktio palauttaa 0, kun molemmat vertailumerkkijonot ovat yhtä suuret.
  • Funktio palauttaa arvon 1, kun ensimmäinen merkkijono on suurempi kuin toinen merkkijono.
  • Funktio palauttaa -1, kun ensimmäinen merkkijono on pienempi kuin toinen merkkijono.

Syntaksi:

intmerkkijono 1.vertailla(merkkijono2)

Luo C ++ -tiedosto seuraavalla koodilla vertaillaksesi kahta merkkijonoarvoa kahdella syöttöarvolla vertailu () -toiminnon avulla. Kaikkien käyttäjien todentaminen voidaan tarkistaa vertaamalla käyttäjien lähettämiä arvoja todennetun käyttäjän arvoihin. Tämä todennusprosessi on toteutettu seuraavassa koodissa. Voimassa oleva sähköpostiosoite ja salasana on tallennettu kahteen merkkijonomuuttujaan. Seuraavaksi näitä arvoja on verrattu käyttäjän sähköpostiosoitteeseen ja salasanaan vertailla () toiminto. Looginen JA koodia on käytetty käyttäjän tunnistamiseen. Menestysviesti tulostetaan, jos molemmat vertailu () -funktiot palauttavat True. Muussa tapauksessa vikailmoitus tulostetaan.

// Sisällytä tarvittava kirjasto

#sisältää

usingnamespace std;

sisäpuolella() {

// Alusta kaksi merkkijonomuuttujaa
merkkijono sähköposti('[email protected]');
merkkijonon salasana('linuxhint');
// Ilmoita kaksi merkkijonomuuttujaa
merkkijono user_email;
merkkijono user_password;

// Ota sähköpostiosoite käyttäjältä
kustannususer_email;

// Ota salasana käyttäjältä
kustannuskäyttäjän salasana;

// Tarkista käyttäjätunnus ja salasana ovat kelvollisia tai virheellisiä
jos (user_email.vertailla(sähköposti) == 0&&käyttäjän salasana.vertailla(Salasana) == 0 )
kustannus<<'Todennus onnistui.'<<endl;
muu
kustannus<<'Sähköposti tai salasana on virheellinen.'<<endl;

paluu0;
}

Lähtö:

Jos käyttäjä on kirjoittanut koodin suorittamisen jälkeen ' [sähköposti suojattu] 'Sähköpostiosoitteena ja' 12345 'Salasanaksi kolmas' if '-ehto palautetaan Väärä, ja seuraava lähtö tulee näkyviin.

Jos käyttäjä on kirjoittanut koodin uudelleen, jos kirjoitit ' [sähköposti suojattu] 'Sähköpostiosoitteena ja' linuxhint 'Salasanaksi kolmas' if '-ehto palautetaan Totta, ja seuraava lähtö tulee näkyviin.

Strcmp () -funktion käyttäminen merkkijonon vertaamiseen:

Strcmp () on toinen funktio C ++: n merkkijonojen vertaamiseen. Se palauttaa arvon tosi, jos molemmat vertailumerkkijonot ovat yhtä suuret. Tämän toiminnon ottamat syöttöparametrit eroavat vertailutoiminnosta (). Vertailutoiminto ottaa merkkijonoarvon parametriksi ja strcmp () -funktio ottaa char -taulukon parametriksi. Tämän toiminnon syntaksi on esitetty alla.

Syntaksi:

int strcmp ( const hiiltyä *str1, const hiiltyä *str2);

Luo C ++ -tiedosto seuraavalla koodilla vertaillaksesi kahta merkkijonoa strcmp () -funktiolla. Kaksi 100 elementin merkkijonoa on ilmoitettu koodissa tallentamaan käyttäjien ottamat merkkijonoarvot. The getline () -toimintoa käytetään käyttäjän syötteen tallentamiseen char -taulukon muuttujiin. Seuraavaksi, strcmp () -toimintoa on käytetty tarkistamaan, että tuloarvot ovat samat tai eivät. Jos toiminto palaa Totta, sitten onnistumisviesti tulostetaan; muuten vikailmoitus tulostetaan,

// Sisällytä tarvittavat kirjastot

#sisältää

#sisältää

usingnamespace std;

sisäpuolella() {
// Delare kaksi merkkijonomuuttujaa
hiiltyächrData1[100],chrData2[100];

// Ota ensimmäiset merkkijonotiedot
kustannus<<'Kirjoita ensimmäinen merkkijono:';
gin.getline(chrData1, 100);
// Otetaan toisen merkkijonon tiedot
kustannus<<'Kirjoita toinen merkkijono:';
gin.getline(chrData2, 100);

jos ( strcmp (chrData1,chrData2)==0)
printf ('Jouset ovat yhtä suuret n'');
muu
printf ('Jouset eivät ole tasavertaisia n'');

paluu0;
}

Lähtö:

Koodin suorittamisen jälkeen merkkijonon arvo ' Hei 'Annetaan molemmille syöttöarvoille, ja seuraava tulos tulee näkyviin.

Johtopäätös:

Tässä opetusohjelmassa on esitetty kolme tapaa verrata merkkijonoja C ++: ssa käyttämällä kolmea yksinkertaista esimerkkiä. Sekä vertailuoperaattorin käyttö että sisäänrakennetut toiminnot merkkijonojen tasaisuuden tarkistamiseksi on kuvattu tässä opetusohjelmassa uusien C ++ -ohjelmoijien auttamiseksi.