C ++ merkkijonot: strcpy (), strcat (), strlen (), strcmp () ESIMERKKEJÄ

Sisällysluettelo:

Anonim

Mikä on merkkijono?

Merkkijono on merkkijono. C ++ -merkkijono on std :: string-luokan objekti. Merkit ovat tallennettuja tavusekvenssejä, joilla on pääsy yhden merkin tavuun.

C ++ -merkkijonot varaavat muistia dynaamisesti. Tarvittaessa merkkijonolle voidaan osoittaa enemmän muistia ajon aikana. Koska muistia ei ole varattu ennakkoon, muistia ei tuhlaa. Voimme suorittaa erilaisia ​​toimintoja jousille, mukaan lukien vertailut, ketjutus, muunnos jne.

Tässä C ++ -opetusohjelmassa opit:

  • Mikä on merkkijono?
  • Merkkijonot
    • C-tyylinen merkkijono
    • vakio :: merkkijono
  • Merkkijonon arvojen käyttö
  • Merkkijonotoiminnot:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Esimerkki:

Merkkijonot

C ++ tukee kahden tyyppisiä merkkijonoilmoituksia:

  • C-tyylinen merkkijono
  • Jousiluokan tyyppi

C-tyylinen merkkijono

Tämän tyyppinen merkkijonoilmoitus otettiin käyttöön C-ohjelmointikielellä. C ++ tukee sitä edelleen. Se on yksinkertaisesti yksiulotteinen merkkijono, joka on lopetettu nollamerkillä (\ 0). Nollapäätteisessä merkkijonossa on merkkejä, jotka muodostavat merkkijonon, jota seuraa nolla.

Harkitse seuraavaa merkkijonoa

char name[5] = {'J', 'o', 'h', 'n', '\0'};

Yllä oleva ilmoitus luo merkkijonon, joka muodostaa sanan John. Sanassa on 4 merkkiä, mutta merkkijonon koko on 5. Ylimääräinen tila sallii tyhjän merkin pitämisen.

Taulukon alustussäännön avulla voimme kirjoittaa yllä olevan lauseen seuraavasti:

char name[] = "John";

Huomaa, että nollamerkkiä ei tarvitse sijoittaa merkkijonovakion loppuun. C ++ -kääntäjä sijoittaa '\ 0' automaattisesti merkkijonon päähän aloittaessaan taulukon.

vakio :: merkkijono

Standardi C ++ -kirjasto tarjoaa merkkijonoluokan, joka tukee erilaisia ​​merkkijono-operaatioita. Se on kirjoitettu nimellä std :: string.

Tämän luokan käyttämiseksi meidän on ensin sisällytettävä se työtilaamme käyttämällä #include-esiprosessoria alla esitetyllä tavalla:

#include

Seuraavaksi voimme julistaa merkkijonomme merkkijonon avainsanalla. Esimerkiksi:

string name = "John";

Yllä oleva käsky luo merkkijonon nimeltä John arvon pitämiseksi.

Merkkijonon arvojen käyttö

C ++: ssa voimme käyttää merkkijonon arvoja merkkijonon nimellä. Esimerkiksi:

#include using namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä. {Merkitsee pääfunktion () rungon alkua.
  4. Ilmoitetaan merkkijono ja annetaan sille nimen nimi. Merkkijono tallentaa arvon John. Ylimääräinen tila tallentaa tyhjän merkin.
  5. Tulostetaan tekstiä konsolille.
  6. Tulostetaan merkkijonon nimi konsolille.
  7. Main () -funktion pitäisi palauttaa arvo, jos ohjelma toimii hyvin.
  8. Pääfunktion () rungon pää.

Tässä on toinen esimerkki C ++ -merkkijonoluokasta:

#include #include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen merkkijonoluokan koodissamme.
  3. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  4. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä. {Merkitsee pääfunktion () rungon alkua.
  5. Merkitään merkkijono ja annetaan sille nimen nimi. Merkkijono tallentaa arvon Guru99.
  6. Merkkijonon arvon tulostaminen konsolin tekstin viereen.
  7. Main () -funktion pitäisi palauttaa arvo, jos ohjelma toimii hyvin.
  8. Pääfunktion () rungon pää.

Merkkijonotoiminnot:

Haluat usein manipuloida merkkijonoja. C ++ tarjoaa laajan valikoiman toimintoja, joita voit käyttää tähän. Nämä toiminnot on määritelty CString-luokassa, joten meidän on sisällytettävä se koodiimme, jotta voimme käyttää toimintoja. Keskustelkaamme seuraavista:

strcpy ()

Tämä on merkkijonokopiointitoiminto. Se kopioi yhden merkkijonon toiseen merkkijonoon.

Syntaksi:

strcpy(string1, string2);

Funktion kaksi parametria, merkkijono1 ja merkkijono2, ovat merkkijonoja. Funktio kopioi merkkijonon string1 merkkijonoon 1.

strcat ()

Tämä on merkkijonon ketjutustoiminto. Se ketjuttaa merkkijonoja.

Syntaksi:

strcat(string1, string2);

Funktion kaksi parametria merkkijono1 ja merkkijono2 ovat ketjutettavat merkkijonot. Yllä oleva funktio yhdistää merkkijonon2 merkkijonon1 loppuun.

strlen ()

Tämä on merkkijonon pituusfunktio. Se palauttaa sille argumenttina välitetyn merkkijonon pituuden.

Syntaksi:

strnlen(string1)

Parametri merkkijono1 on sen merkkijonon nimi, jonka pituus on määritettävä. Yllä oleva funktio palauttaa merkkijonon1 pituuden.

strcmp ()

Tämä on merkkijonojen vertailutoiminto. Sitä käytetään merkkijonojen vertailuun.

Syntaksi:

strcmp(string1, string2);

Yllä oleva funktio palauttaa arvon 0, jos merkkijonot merkkijonot1 ja merkkijono2 ovat samanlaiset, alle 0, jos merkkijonot merkkijono1

Esimerkki:

Seuraava esimerkki osoittaa, kuinka yllä olevia merkkijonofunktioita käytetään:

#include #include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen CString-luokan koodissamme.
  3. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  4. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä. {Merkitsee pääfunktion () rungon alkua.
  5. Ilmoitetaan 10 merkin merkkijono ja annetaan sille nimen nimi 1. Merkkijono tallentaa arvon Guru99.
  6. Ilmoitetaan 10 merkin merkkijono ja annetaan sille nimen nimi2. Merkkijono tallentaa arvon John.
  7. Ilmoitetaan 10 merkin merkkijono ja annetaan sille nimen nimi 3.
  8. Ilmoitetaan kokonaislukumuuttuja nimeltä len.
  9. Kopioidaan merkkijonon nimi merkkijonon nimeksi3.
  10. Merkkijonon1 arvon tulostaminen konsolin tekstin viereen. Sen pitäisi tulostaa Guru99.
  11. Liitä merkkijonojen nimi2 merkkijonon1 loppuun. Nimen1 arvo on nyt Guru99John.
  12. Merkkijonon1 arvon tulostaminen konsolin tekstin viereen. Sen pitäisi tulostaa Guru99John
  13. Nimen1 merkkijonon pituuden määrittäminen ja pituuden arvon määrittäminen muuttujalle len.
  14. Tulostetaan len-muuttujan arvo jonkin muun tekstin viereen konsoliin.
  15. Main () -funktion pitäisi palauttaa arvo, jos ohjelma toimii hyvin.
  16. Pääfunktion () rungon pää.

Yhteenveto

  • Merkkijono on merkkijono.
  • Merkkijonot kuuluvat standardiin merkkijonoluokkaan C ++.
  • Voimme julistaa merkkijonot käyttämällä C-tyylistä merkkijonoa tai tavallista merkkijonoluokkaa.
  • Funktio strcpy () kopioi merkkijonon toiseen.
  • Strcat () -funktio yhdistää kaksi toimintoa.
  • Strlen () -funktio palauttaa funktion pituuden.
  • Funktio strcmp () vertaa kahta merkkijonoa.