Veikėjas pažodinis
Žodžio simbolis yra simbolis vienomis kabutėmis. Taigi,
char ident1 = 'A'; char ident2 = 'b'; char ident3 = '4'; char ident4 = '6';yra visi skirtingi simbolių apibrėžimai. Atminkite, kad skaitmuo atskirose kabutėse yra simbolis, o ne sveikasis skaičius.
Pabėgimo seka, tokia kaip „“ (žr. Toliau) atskirose kabutėse, yra simbolis. Taigi,
char ident1 = "" ";yra personažas.
Vienas simbolis dvigubose kabutėse nėra simbolis; tai yra vieno simbolio eilutė. Taigi „A“, „c“ arba „2“ nėra simbolis, bet yra po vieną simbolio eilutę.
Simbolio kintamąjį galima vėl priskirti vėliau programoje taip:
char ident = 'x';ident = 'Y';
Norėdami sustabdyti identifikatoriui priskirto simbolio keitimą vėliau programoje, prieš apibrėžimą įrašykite rezervuotą žodį „const“ taip:
const char ident = 'd';Sakoma, kad kintamasis ident yra tik skaitomas.
Styginis pažodinis
String literal yra simbolių seka dvigubose kabutėse. Taigi,
char ident1 [] = "Aš tave myliu"; char ident2 [] = "Aš nekenčiu 3 iš jūsų"; char ident3 []= "mes esame pasaulis"; char ident4 [] = "Sveikas pasauli!";
yra visi skirtingi styginių literatų apibrėžimai. Atkreipkite dėmesį į dvigubų kabučių naudojimą. Nėra nieko panašaus į eilinį eilutės kintamąjį. String literal yra simbolių masyvas, kuriame vietoj atribojimo su seka yra atskirta „“. Charatai neatskiriami kableliais. Bet kurį skaičių, didesnį už simbolių skaičių eilutės literate, galima įdėti į laužtinius skliaustus. Tačiau laužtinius skliaustus geriau palikti tuščius.
Vienas simbolis dvigubose kabutėse nėra simbolis; tai yra vieno simbolio eilutė. Taigi „A“, „c“ arba „2“ yra ne simbolis, o kiekvieno po vieną simbolių eilutė.
Styginių kintamasis neleidžia iš naujo priskirti viso literalo, vėliau programos apačioje - žr. Toliau. Tačiau atskirus simbolius galima priskirti iš naujo - žr. Toliau.
Vienkartinė ir dviguba citata simboliu arba pažodžiui
Jei norite turėti vieną simbolio citatą, atlikite kažką panašaus,
char ident = '\' ';Norėdami turėti dvigubą citatą kaip simbolio eilutės literate, atlikite kažką panašaus,
char ident [] = "ab" cd ";Nugaros brūkšnys naudojamas pabėgimo seka, kad būtų išvengta konflikto su ribotuvais. Norint turėti dvigubą simbolio citatą, nereikia atgalinio brūkšnio: „” gerai. Norint turėti vieną citatą eilutės literate, atgalinio brūkšnio nereikia: „ab'cd“ yra gerai.
Kadangi atgalinis pasvirasis brūkšnys naudojamas norint išvengti simbolio, jį reikia ištrinti su kitu atgaliniu brūkšniu, kai naudojamas kaip simbolis arba eilutėje.
Pabėgimo seka
Pabėgimo seka yra viena iš šių:
\ '"\? \\ \ a \ b \ f \ n \ r> \ t \ vKiekviena pabėgimo seka paprastai įrašoma arba kaip simbolis atskirose kabutėse, arba kaip pabėgimo seka dvigubose kabutėse.
- \ ': naudojamas kaip vienas citatos simbolis, atskirose kabutėse.
- \ “: Naudojamas kaip dvigubos citatos simbolis pažodžiui.
- \? : nuo ? yra santūrus personažas, jo reikia išvengti pažodžiui.
- \\: atgalinis brūkšnys turėtų būti išbrauktas kaip simbolis arba eilutės pažodžiui, kad nesukeltų kitos prasmės.
- \ a: vieną kartą skamba pavojaus varpas, kai naudojamas kaip simbolis arba eilutės literate.
- \ b: rezultatai rodomi kaip atgalinis klavišas eilutės literate rodant ekraną, nuimant ankstesnį simbolį.
- \ f: priverčia kitą puslapį tiekti spausdintuvą, kai jis naudojamas kaip simbolis arba pažodžiui.
- grąžina žymeklį, kuriame turi būti atspausdintas kitas simbolis, bet esančios eilutės ribose.
- \ n: grąžina žymeklį į kitos eilutės pradžią arba tik į kitą eilutę, atsižvelgiant į operacinę sistemą.
- \ t: sukuria horizontalų skirtuką.
- \ v: sukuria vertikalų skirtuką.
Operacijos su personažais
Sujungimas
Apibrėžtinai du eilutės literalus galima sujungti su tarpu taip:
char ident [] = "abc" "def";cout << ident << "\n";
Išvestis yra: abcdef . Šis apibrėžimas gali būti išplėstas daugiau nei dviem pažodžiui. Pastaba: teiginys yra apibrėžimas, o ne tik užduotis. Apibrėžimas gali būti tęsiamas kitoje eilutėje, tarpai atskiriant eilutes taip:
char ident [] = "abc" "def"„ghi“;
cout << ident << "\n";
Išvestis yra abcdefghi.
Pastaba: simbolių negalima taip susieti, nes pavienės simbolio kabutės negali turėti daugiau nei vieno simbolio.
Lygybės operatoriai
Tie patys simboliai tuo pačiu atveju yra lygūs. Jie nėra lygūs, jei nėra tos pačios bylos. Apsvarstykite,
„Bool“ rezultatas = 'B' == 'B';cout << result << "\n";
== reiškia lygu, o = reiškia priskirtą, o ne lygų. Išvestis yra 1, jei teisinga. Apsvarstykite,
„Bool“ rezultatas = 'B' == 'b';cout << result << "\n";
Išvestis yra 0, jei klaidinga. Apsvarstykite,
„Bool“ rezultatas = 'b' == 'c';cout << result << "\n";
Išvestis yra 0, jei klaidinga. Apsvarstykite,
„Bool“ rezultatas = „B“ != „B“;cout << result << "\n";
!= reiškia nelygią, o = reiškia priskirtą ir nelygią. Išvestis yra 0, jei klaidinga. Apsvarstykite,
„Bool“ rezultatas = „B“ != „b“;cout << result << "\n";
Išvestis yra 1, jei teisinga. Apsvarstykite,
„Bool“ rezultatas = 'b' != „c“;cout << result << "\n";
Išvestis yra 1, jei teisinga.
Taigi, == ir != yra lygybės operatoriai.
Ryšių operatoriai
Paprastiems simboliams C ++ didėjančia tvarka skaičiai eina prieš didžiąsias, o prieš mažąsias.
Taigi < will return true (1) when the left character is less than the right character. The other relational operators, <=, >, > = yra panašiai paaiškinti.
Styginis literalas kaip objektas
Masyvas yra pastovus rodiklis į tam tikros duomenų tipo sekos pradžią. Panašiai eilutė yra pastovus žymeklis į simbolių sekos pradžią. Palyginkite šiuos apibrėžimus:
int arr [] = 3, 4, 5, 6, 7;char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "moteris";
Pirmasis masyvas yra intų masyvas ir turi penkis elementus. Antroji ir trečioji masyvai yra simbolių masyvai su skirtingais pavadinimais, tačiau vienodu elementų skaičiumi. Antroji ir trečioji masyvai yra vienodi, tačiau pagal jų pavadinimus. Antrojo masyvo teksto turinį riboja petnešos; simboliai atskiriami kableliais, o kiekvienas simbolis yra atskirose kabutėse. Trečiojo masyvo teksto turinį riboja dvigubos kabutės; simboliai nėra atskirti kableliais ir kiekvienas simbolis nėra atskirose kabutėse. Antrasis ir trečiasis masyvas yra du eilutės sudarymo būdai, o trečiasis būdas yra geresnis būdas.
„arr“ yra pastovus rodiklis į pirmąjį jo masyvo elementą, o tai reiškia, kad „arr“ visada nurodys vietą, kurioje yra sveikasis skaičius 3, net jei pakeičiama 3 reikšmė. Masyvo dydis, penki elementai, iš tikrųjų nelieka pastovus. Tačiau kiekvieną iš masyvo reikšmių galima pakeisti.
str yra pastovus rodiklis į pirmąjį masyvo elementą, o tai reiškia, kad str visada nurodys vietą, turinčią simbolį „w“, net jei „w“ reikšmė bus pakeista. Simbolių masyvo dydis, penki elementai, iš tikrųjų nelieka pastovus. Tačiau kiekvieną iš pažodžio reikšmių galima pakeisti.
stri yra pastovus žymeklis į pirmąjį jos pažodinio elemento (masyvo) elementą, o tai reiškia, kad stri visada nurodys vietą, kurioje yra simbolis, net jei w reikšmė bus pakeista. Stygos literalo (masyvo) dydis, penki elementai, iš tikrųjų nelieka pastovus. Tačiau kiekvieną iš pažodžio reikšmių galima pakeisti.
Kas yra pastovus masyvo ar eilutės pažodžiui? Pirmojo masyvo ar pažodinio elemento atminties adresas lieka kaip masyvo ar pažodinio vardo (identifikatoriaus) vertė ir jo negalima pakeisti. Na, masyvo ar pažodžio dydis iš tikrųjų nelieka pastovus. Kiekvieną masyvo ar pažodinio reikšmę galima pakeisti. Šis kodas rodo, kaip buvo pakeistas kiekvienos masyvo ketvirtasis elementas:
int arr [] = 3, 4, 5, 6, 7;char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "moteris";
arr [3] = 9;
str [3] = „e“;
juosta [3] = 'e';
cout << arr[3] << '\n';
cout << str << '\n';
cout << stri << '\n';
Rezultatas yra:
9moterų moterų
moterys
Atkreipkite dėmesį, kad apibrėžto eilutės literalo elementus, kaip ir aukščiau pateiktą trečiąjį apibrėžimą, galima pasiekti naudojant masyvo indeksą (indeksą). Antrosios išvesties eilutės priežastis pateikiama žemiau.
Apibrėžimas
Atminkite, kad aukščiau pateiktose apibrėžtyse nėra indekso sveiko skaičiaus. Kai programuotojas negali lengvai nustatyti elementų skaičiaus, indekso sveikasis skaičius turėtų būti praleistas. Bet kokiu atveju sveikasis skaičius neturėtų būti mažesnis už masyvo elementų skaičių.
String literal sveikasis skaičius turėtų būti bent 1 didesnis nei eilutės simbolių skaičius. Taip yra todėl, kad nulinį simbolį (\ 0) kompiliatorius visada prideda masyvo, kuris yra eilutė, atskirtą dvigubomis kabutėmis, pabaigoje. Nulis simbolis nėra pridėtas antrojo aukščiau esančio masyvo pabaigoje, nes tai nėra oficiali eilutė. Trečiasis masyvas yra oficiali eilutė. Šis kodas rodo minimalias indekso reikšmes.
int arr [5] = 3, 4, 5, 6, 7;char str [5] = 'w', 'o', 'm', 'a', 'n';
char stri [6] = "moteris";
Norint, kad antrasis apibrėžimas taptų oficialia eilute, „null“ simbolis turi būti pridėtas taip:
int arr [5] = 3, 4, 5, 6, 7;char str [6] = 'w', 'o', 'm', 'a', 'n', '\ 0';
char stri [6] = "moteris";
Dabar turėtų būti išvestis,
9moterys
moterys
be antrosios „moterų“. Atkreipkite dėmesį, kad antrojo masyvo atitinkamas indeksas yra 6, o ne 5, kaip buvo.
Nuolatinės pažodinės vertybės
Norėdami sustabdyti bet kurio simbolio žymėjimą dvigubose kabutėse, priskirtose identifikatoriui, vėliau programoje, prieš apibrėžimą įrašykite rezervuotą žodį „const“ taip:
const char ident [] = "Aš tave myliu";Operacijos su styginiais literalais
Lygybės operacijos
Lygybės operatoriai yra == ir != . Palyginus dviejų eilučių kintamuosius (identifikatorius), galiausiai lyginami literatų rodikliai (adresai); tai neteisinga. Norėdami palyginti eilutes, reikia palyginti literatus, kaip nurodyta šiame kode:
bool rezultatas = "moteris" == "moteris";cout << result << '\n';
Išvestis yra 1, jei teisinga. Palyginimas atliekamas pagal žodyną, tačiau skaičiai yra pirmieji didėjimo tvarka, prieš didžiąsias raides, kurie yra prieš mažąsias. Šio kodo išvestis yra 0, jei klaidinga.
„Bool“ rezultatas = „moteris“ != "moteris";cout << result << '\n';
Ryšių operatoriai su styginių literalais
Reliaciniai operatoriai neveikia su styginių literalais.
Žalios stygos pažodinis
Neapdorotas eilutės literalas leidžia eilutę rodyti kaip spausdintą, nepaisant pabėgimo sekų ir gerbiant naujas eilutes. Apsvarstykite šį kodą:
char str [] = R "(abc \\ d efg hijklmn \ n "'opq
pirmasis) ";
cout << str << '\n';
Rezultatas yra:
abc \\ d efg hijklmn \ n "'opq
pirmoji
Kode neapdorotas eilutės literalas prasideda raide R, po kurio rašoma „ir“ ( . Tai baigiasi) ir „.
C ++ pagrindiniai styginių literatūros tipai
char
Char tipas yra originalus C ++ tipas ir paprastai jis saugo simbolį 8 bitais.
char16_t
Tai išsaugo simbolį 16 bitų.
char32_t
Tai išsaugo simbolį 32 bitais.
wchar_t
char16_t ir char32_t yra platūs simboliai. „wchar_t“ yra platus simbolis, kuris yra nuosavybės ir apibrėžtas įgyvendinant.
Išvada
Žodžio simbolis yra vienas simbolis vienose kabutėse. Pabėgimo seka yra simbolis, kuris taip pat gali būti atskirose kabutėse. Eilutės eilutė yra simbolių seka dvigubose kabutėse. String literal yra simbolių masyvas, kuris baigiasi \ 0. Lygybės ir santykių operatoriai dirba su simbolių literalais. Lygybės operatoriai dirba su styginių literalais, tačiau reliaciniai operatoriai neveikia su styginių literalais. Simbolių identifikatoriai gali būti naudojami lyginant, tačiau eilutės identifikatoriai neturėtų būti naudojami palyginime. Neapdorotas eilutės literalas leidžia eilutę rodyti spausdintą, nepaisant pabėgimo sekų ir gerbiant naujas eilutes.
Chrys