Mis on string?
String on märkide jada. C ++ string on klassi std :: string objekt. Märgid on salvestatud baitide järjestused, millel on juurdepääs ühele tähemärgibaidile.
C ++ stringid eraldavad mälu dünaamiliselt. Vajaduse korral saab tööaja jooksul stringile eraldada rohkem mälu. Kuna mälu ei ole eeljaotatud, pole mälu raiskamine. Saame stringidel teha erinevaid toiminguid, sealhulgas võrdlusi, liitmist, teisendamist jne.
Selles C ++ õpetuses saate teada:
- Mis on string?
- Stringide deklareerimine
- C-stiilis tähemärkide string
- std :: string
- Juurdepääs stringiväärtustele
- Stringi funktsioonid:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Näide:
Stringide deklareerimine
C ++ toetab kahte tüüpi stringide deklaratsioone:
- C-stiilis tähemärk
- Stringklassi tüüp
C-stiilis tähemärkide string
Seda tüüpi stringide deklaratsioon võeti kasutusele C-programmeerimiskeeles. C ++ toetab seda jätkuvalt. See on lihtsalt ühemõõtmeline tähemärkide massiiv, mis on lõpetatud nullmärgiga (\ 0). Null-lõpetatud stringil on märke, mis moodustavad stringi, millele järgneb null.
Mõelge allpool toodud stringideklaratsioonile:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Ülaltoodud deklaratsioon loob stringi, mis moodustab sõna John. Sõnal on 4 tähemärki, kuid stringi suurus on 5. Lisaruum võimaldab nullmärki hoida.
Massiivi initsialiseerimise reegli abil saame ülaltoodud avalduse kirjutada järgmiselt:
char name[] = "John";
Pange tähele, et te ei pea nullkontrolli paigutama stringi konstandi lõppu. C ++ kompilaator paigutab massiivi initsialiseerimisel '\ 0' automaatselt stringi lõppu.
std :: string
Standardne C ++ teek pakub stringiklassi, mis toetab erinevaid stringitoiminguid. See on kirjutatud kui std :: string.
Selle klassi kasutamiseks peame selle kõigepealt oma tööruumi kaasama, kasutades eelprotsessorit #include, nagu allpool näidatud:
#include
Järgmisena võime oma stringi deklareerida stringi märksõna abil. Näiteks:
string name = "John";
Ülalolev lause loob stringi nimega nimi, mis hoiab väärtust John.
Juurdepääs stringiväärtustele
C ++ versioonis pääseme stringi väärtustele juurde stringi nime abil. Näiteks:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Väljund:
Siin on ekraanipilt koodist:
Koodi selgitus:
- Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
- Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika. {Tähistab põhifunktsiooni () keha algust.
- Märgistringi deklareerimine ja sellele nime andmine. String salvestab väärtuse John. Lisaruum salvestab nullmärgi.
- Konsoolile teksti printimine.
- Nime nimega stringi väärtuse printimine konsoolile.
- Funktsioon main () peaks tagastama väärtuse, kui programm töötab hästi.
- Põhifunktsiooni () keha lõpp.
Siin on veel üks näide, kasutades C ++ stringi klassi:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Väljund:
Siin on ekraanipilt koodist:
Koodi selgitus:
- Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasa arvatud standardne stringiklass meie koodis.
- Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
- Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika. {Tähistab põhifunktsiooni () keha algust.
- Stringi deklareerimine ja sellele nime andmine. String salvestab väärtuse Guru99.
- Stringi nime väärtuse printimine konsooli mõne teksti kõrvale.
- Funktsioon main () peaks tagastama väärtuse, kui programm töötab hästi.
- Põhifunktsiooni () keha lõpp.
Stringi funktsioonid:
Sageli soovite stringidega manipuleerida. C ++ pakub laia valikut funktsioone, mida saate selleks kasutada. Need funktsioonid on määratletud klassis CString, seega peame funktsioonide kasutamiseks lisama selle oma koodi. Arutagem mõningate üle:
strcpy ()
See on stringi kopeerimise funktsioon. See kopeerib ühe stringi teise stringi.
Süntaks:
strcpy(string1, string2);
Funktsiooni kaks parameetrit string1 ja string2 on stringid. Funktsioon kopeerib stringi string1 stringi 1.
strcat ()
See on stringide liitmise funktsioon. See liidab stringe.
Süntaks:
strcat(string1, string2);
Funktsiooni kaks parameetrit string1 ja string2 on liidetavad stringid. Ülaltoodud funktsioon liidab stringi string2 stringi stringi1 lõpuni.
strlen ()
See on stringi pikkuse funktsioon. See tagastab talle argumendina edastatud stringi pikkuse.
Süntaks:
strnlen(string1)
Parameeter string1 on selle stringi nimi, mille pikkus tuleb kindlaks määrata. Ülaltoodud funktsioon tagastab stringi string1 pikkuse.
strcmp ()
See on stringide võrdlusfunktsioon. Seda kasutatakse stringide võrdlemiseks.
Süntaks:
strcmp(string1, string2);
Ülaltoodud funktsioon tagastab 0, kui stringid string1 ja string2 on sarnased, vähem kui 0, kui string1
Näide:
Järgmine näide näitab, kuidas kasutada ülaltoodud stringifunktsioone:
#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;}
Väljund:
Siin on ekraanipilt koodist:
Koodi selgitus:
- Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Standardse CStringi klassi lisamine meie koodi.
- Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
- Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika. {Tähistab põhifunktsiooni () keha algust.
- 10-tähemärgise stringi deklareerimine ja sellele nime andmine1. String salvestab väärtuse Guru99.
- 10-tähemärgilise stringi deklareerimine ja sellele nime andmine2. String salvestab väärtuse John.
- 10-tähemärgise stringi deklareerimine ja sellele nime andmine3.
- Deklareeritakse täisarvu muutuja nimega len.
- Stringi nimi1 stringi nimesse3 kopeerimine.
- Stringi nime1 väärtuse printimine konsoolil mõne teksti kõrvale. See peaks trükkima Guru99.
- Stringide nime2 liitmine stringi nime1 lõpuni. Nime1 väärtus on nüüd Guru99John.
- Stringi nime1 väärtuse printimine konsoolil mõne teksti kõrvale. See peaks trükkima Guru99Johni
- Nime nimega1 pikkuse määramine ja pikkuse väärtuse määramine muutujale len.
- Len-muutuja väärtuse printimine konsoolile mõne muu teksti kõrvale.
- Funktsioon main () peaks tagastama väärtuse, kui programm töötab hästi.
- Põhifunktsiooni () keha lõpp.
Kokkuvõte
- String on märkide jada.
- Stringid kuuluvad standardse stringi klassi C ++ keeles.
- Stringid saame deklareerida C-stiilis märgistringi või standardse stringiklassiga.
- Funktsioon strcpy () kopeerib ühe stringi teise.
- Funktsioon strcat () ühendab kahte funktsiooni.
- Funktsioon strlen () tagastab funktsiooni pikkuse.
- Funktsioon strcmp () võrdleb kahte stringi.