Kaip naudotis „C ++ String Literal“

How Use C String Literal



Kompiuterio klaviatūroje spausdinami simboliai. Paspaudus klavišą, ekrane matomas simbolis. Pastaba: tarpas taip pat yra simbolis. Eilių eilutė yra simbolių seka. Šiame straipsnyje paaiškinta, kaip naudoti C ++ eilutės literalus. Turėtumėte žinoti apie C ++ masyvus ir rodykles, kad suprastumėte šį straipsnį.

Simbolis pažodinis

Simbolių pažodis yra simbolis vienose kabutėse. Taigi,







anglistapatybė1= „Į“; anglistapatybė2= „b“; anglistapatybė3= „4“; anglistapatybė4= „6“;

visi skirtingi simbolių apibrėžimai. Atminkite, kad skaitmuo viengubose kabutėse yra simbolis, o ne sveikasis skaičius.



Pabėgimo seka, tokia kaip (žr. Toliau) atskirose kabutėse, yra simbolis. Taigi,



anglistapatybė1= '' ';

yra personažas.





Vienas simbolis dvigubose kabutėse nėra simbolis; tai vieno simbolio eilutė. Taigi A arba c arba 2 nėra simbolis, bet yra vieno simbolio eilutė.

„Char“ kintamąjį vėliau galima priskirti programai taip:



anglistapatybė= „x“;
tapatybė= „IR“;

Jei norite neleisti keisti identifikatoriui priskirto simbolio, vėliau programoje, prieš apibrėžimą su rezervuotu žodžiu const, kaip nurodyta toliau:

konst anglistapatybė= „d“;

Sakoma, kad kintamasis ident yra tik skaitomas.

Styginis pažodinis

Eilių eilutė yra simbolių seka dvigubose kabutėse. Taigi,

anglistapatybė1[] = 'Aš tave myliu'; anglistapatybė2[] = 'Nekenčiu tavęs 3'; anglistapatybė3[]
= 'mes esame pasaulis'; anglistapatybė4[] = 'Labas pasauli!';

visi yra skirtingi styginių literalų apibrėžimai. Atkreipkite dėmesį į dvigubų kabučių naudojimą. Nėra nieko panašaus į paprastą eilutės kintamąjį. Styginis literalas yra simbolių masyvas, kuriame vietoj atribojimo su {} seka skiriama. Ženklai nėra atskirti kableliais. Laužtiniuose skliaustuose galima įterpti bet kurį skaičių, didesnį nei simbolių eilutėje. Tačiau laužtinius skliaustus geriau palikti tuščius.

Vienas simbolis dvigubose kabutėse nėra simbolis; tai vieno simbolio eilutė. Taigi A arba c arba 2 yra ne simbolis, o kiekvieno simbolio eilutė.

Eilutės kintamasis neleidžia iš naujo priskirti viso literalo, vėliau programos apačioje-žr. Tačiau atskirus simbolius galima priskirti iš naujo-žr.

Viena ir dviguba citata simboliu arba pažodžiui

Jei norite turėti vieną citatą kaip veikėjas, darykite kažką panašaus:

anglistapatybė= ' '';

Jei norite, kad eilutės literale būtų dvigubos kabutės, atlikite kažką panašaus:

anglistapatybė[] = 'toli'CD“;

Atgalinis brūkšnys naudojamas pabėgimo seka, kad būtų išvengta konflikto su skiriamaisiais ženklais. Jei norite, kad simbolis būtų dvigubai cituojamas, nereikia pasvirojo brūkšnio: „‘ viskas gerai. Jei eilutėje yra tik viena citata, nereikia pasvirojo brūkšnio: ab’cd tinka.

Kadangi atbulinis brūkšnys naudojamas pabėgti nuo simbolio, jis turi būti išbrauktas kitu pasviruoju brūkšniu, kai naudojamas kaip simbolis arba eilutės literale.

Pabėgimo seka

Pabėgimo seka yra viena iš šių:

''? \ į b f n r> t v

Kiekviena pabėgimo seka paprastai įvedama kaip simbolis atskirose kabutėse arba kaip pabėgimo seka dvigubose kabutėse.

  • ’: Naudojamas kaip vienas kabutės simbolis, esant vienoms kabutėms.
  • : yra naudojamas kaip dvigubos kabutės simbolis, pažodžiui.
  • ? : nuo ? yra rezervuotas simbolis, jis turėtų būti ištrintas pažodžiui.
  • \: atgalinis brūkšnys turi būti išvestas kaip simbolis arba eilutės pažodžiui, kad nesukeltų kitos reikšmės.
  • a: vieną kartą skamba pavojaus varpas, kai naudojamas kaip simbolis arba eilutės literale.
  • b: rezultatai rodomi ekrane kaip atbulinės eigos eilutės literale, pašalinant ankstesnį simbolį.
  • f: kitas puslapis bus paduodamas į spausdintuvą, kai naudojamas kaip simbolis arba pažodžiui.
  • r: grąžina žymeklį, kur turi būti spausdinamas kitas simbolis, bet dabartinėje eilutėje.
  • n: grąžina žymeklį į kitos eilutės pradžią arba tiesiog į kitą eilutę, priklausomai nuo operacinės sistemos.
  • t: sukuria horizontalų skirtuką.
  • v: sukuria vertikalų skirtuką.

Operacijos su simboliais

Sujungimas

Apibrėžiant, du stygų literalai gali būti sujungti su tarpais taip:

anglistapatybė[] = „abc“ 'def';
kaina<<tapatybė<< ' n';

Išvestis yra tokia: 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 netgi gali tęstis į kitą eilutę, o tarpai skiria linijas taip:

anglistapatybė[] = „abc“ 'def'
'Užsirašyti';
kaina<<tapatybė<< ' n';

Rezultatas yra abcdefghi.

Pastaba: simbolių negalima sujungti tokiu būdu, nes atskiros 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 jie nėra tos pačios bylos. Apsvarstykite,

bool rezultatas= „B“ == „B“;
kaina<<rezultatas<< ' n';

== reiškia lygus, o = reiškia priskirtą ir ne lygų. Išvestis yra 1, tiesa. Apsvarstykite,

bool rezultatas= „B“ == „b“;
kaina<<rezultatas<< ' n';

Išvestis yra 0, jei klaidinga. Apsvarstykite,

bool rezultatas= „b“ == „c“;
kaina<<rezultatas<< ' n';

Išvestis yra 0, jei klaidinga. Apsvarstykite,

bool rezultatas= „B“ ! = „B“;
kaina<<rezultatas<< ' n';

! = reiškia nelygus, o = reiškia priskirtas ir nelygus. Išvestis yra 0, jei klaidinga. Apsvarstykite,

bool rezultatas= „B“ ! = „b“;
kaina<<rezultatas<< ' n';

Išvestis yra 1, tiesa. Apsvarstykite,

bool rezultatas= „b“ ! = „c“;
kaina<<rezultatas<< ' n';

Išvestis yra 1, tiesa.

Taigi, == ir! = Yra lygybės operatoriai.

Santykių operatoriai

Paprastiems simboliams C ++ didėjančia tvarka skaičiai pateikiami prieš didžiąsias raides, o prieš mažąsias raides.

Taigi= yra panašiai paaiškinta.

Styginių literatūra kaip objektas

Masyvas yra pastovi rodyklė į tam tikro tipo duomenų seką. Panašiai eilutė yra nuolatinė rodyklė simbolių sekos pradžioje. Palyginkite šiuos apibrėžimus:

tarptarr[] = {3, 4, 5, 6, 7};
anglisp[] = {'in', 'arba', „aš“, 'iki', „n“};
anglisstri[] = 'moteris';

Pirmasis masyvas yra inčių masyvas ir turi penkis elementus. Antrasis ir trečiasis masyvai yra skirtingų pavadinimų simbolių masyvai, tačiau vienodas elementų skaičius. Antrasis ir trečiasis masyvai yra vienodi, tačiau jų pavadinimai. Antrojo masyvo teksto turinys yra ribojamas skliausteliais; simboliai atskiriami kableliais, o kiekvienas simbolis rašomas kabutėse. Trečiojo masyvo teksto turinys atribotas dvigubomis kabutėmis; simboliai nėra atskirti kableliais ir kiekvienas simbolis nėra kabučių. Antrasis ir trečiasis masyvai yra du eilutės kūrimo būdai, o trečiasis būdas yra geresnis.

arr yra nuolatinė rodyklė į pirmąjį jo masyvo elementą, tai reiškia, kad arr visada nurodys vietą, kurioje yra sveikasis skaičius 3, net jei pakeičiama 3 reikšmė. Masyvo, penkių elementų, dydis iš tikrųjų nelieka pastovus. Tačiau kiekviena masyvo reikšmė gali būti pakeista.

str yra nuolatinė rodyklė į pirmąjį savo masyvo elementą, tai reiškia, kad str visada nurodys vietą, turinčią simbolį „w“, net jei „w“ reikšmė bus pakeista. Simbolių masyvo, penkių elementų, dydis iš tikrųjų nelieka pastovus. Tačiau kiekviena pažodinio žodžio reikšmė gali būti pakeista.

„stri“ yra nuolatinė rodyklė į pirmąjį jo pažodinio elemento (masyvo) elementą, o tai reiškia, kad „stri“ visada nurodys vietą, turinčią simbolį „w“, net jei „w“ vertė bus pakeista. Eilutės literalo (masyvo), penkių elementų, dydis iš tikrųjų nelieka pastovus. Tačiau kiekviena pažodinio žodžio reikšmė gali būti pakeista.

Kas yra konstanta masyve ar eilutės literale? Pirmojo masyvo elemento ar literalo atminties adresas išlieka masyvo ar literalo pavadinimo (identifikatoriaus) reikšmė ir negali būti keičiamas. Na, masyvo ar pažodinio dydis iš tikrųjų nelieka pastovus. Kiekvieną masyvo ar literalo reikšmę galima pakeisti. Šis kodas rodo, kaip buvo pakeistas kiekvieno masyvo ketvirtasis elementas:

tarptarr[] = {3, 4, 5, 6, 7};
anglisp[] = {'in', 'arba', „aš“, 'iki', „n“};
anglisstri[] = 'moteris';

arr[3] = 9;
p[3] = 'Ir';
stri[3] = 'Ir';

kaina<<arr[3] << ' n';
kaina<<p<< ' n';
kaina<<stri<< ' n';

Išėjimas yra:

9
moterys moterys
moterys

Atminkite, kad apibrėžtos eilutės literalo elementai, kaip ir aukščiau pateiktas trečiasis apibrėžimas, gali būti pasiekiami naudojant masyvo indeksą (indeksą). Antrosios išvesties eilutės priežastis pateikta žemiau.

Apibrėžimas

Atminkite, kad aukščiau pateiktuose apibrėžimuose nėra indekso sveiko skaičiaus. Kai programuotojas negali lengvai nustatyti elementų skaičiaus, indeksas turi būti praleistas sveikasis skaičius. Bet kokiu atveju sveikasis skaičius neturėtų būti mažesnis už masyvo elementų skaičių.

Naudojant eilutę literal, sveikasis skaičius turi būti bent 1 didesnis už simbolių skaičių eilutėje. Taip yra todėl, kad kompiliatorius visada prideda nulinį simbolį ( 0) masyvo, kuris yra eilutė, pabaigoje, atskirtas dvigubomis kabutėmis, pabaigoje. Nulinis simbolis nepridedamas antro aukščiau esančio masyvo pabaigoje, nes tai nėra oficiali eilutė. Trečiasis masyvas yra oficiali eilutė. Šis kodas rodo minimalias indeksų reikšmes.

tarptarr[5] = {3, 4, 5, 6, 7};
anglisp[5] = {'in', 'arba', „aš“, 'iki', „n“};
anglisstri[6] = 'moteris';

Kad antrasis apibrėžimas taptų oficialia eilute, nulinis simbolis turi būti pridėtas taip:

tarptarr[5] = {3, 4, 5, 6, 7};
anglisp[6] = {'in', 'arba', „aš“, 'iki', „n“, ' 0'};
anglisstri[6] = 'moteris';

Išvestis dabar turėtų būti

9
moterys
moterys

be antrųjų moterų. Atminkite, kad atitinkamas antrojo masyvo indeksas yra 6, o ne 5, kaip buvo.

Nuolatinės pažodinės vertybės

Jei norite, kad bet koks simbolis dvigubose kabutėse, priskirtose identifikatoriui, nebūtų modifikuotas vėliau programoje, prieš apibrėžimą su rezervuotu žodžiu const, kaip nurodyta toliau:

konst anglistapatybė[] = 'Aš tave myliu';

Operacijos su styginiais literalais

Lygybės operacijos

Lygybės operatoriai yra == ir! =. Kai lyginami dviejų eilučių kintamieji (identifikatoriai), tai galiausiai lyginami literalų rodyklės (adresai); tai negerai. Norint palyginti eilutes, reikia palyginti literatūrą, kaip nurodyta šiame kode:

bool rezultatas= 'moteris' == 'moteris';
kaina<<rezultatas<< ' n';

Išvestis yra 1, tiesa. Palyginimas atliekamas žodyno būdu, tačiau skaičiai pirmiausia didėjančia tvarka, prieš didžiąsias raides, o prieš mažąsias raides. Šio kodo išvestis yra 0, jei klaidinga.

bool rezultatas= 'moteris' ! = 'moteris';
kaina<<rezultatas<< ' n';

Santykių operatoriai su styginiais literalais

Santykių operatoriai neveikia su eilutėmis.

Raw String Literal

Neapdorotas eilutės pažodis leidžia eilutę rodyti kaip įvestą, nepaisant pabėgimo sekų ir nepaisant naujų eilučių. Apsvarstykite šį kodą:

anglisp[] =R“(abc\d efg jis
klmn n'
'opq
pirmas) “;
kaina<< str << '
n“;

Išėjimas yra:

abc \ d efg jis
klmn n'' opq
pirma

Kode neapdorotas eilutės literalas prasideda R, po to ir (. Jis baigiasi) ir.

„C ++“ pagrindinių eilučių tipai

anglis

„Char“ tipas yra originalus C ++ tipas ir paprastai 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 teisė ir apibrėžtas įgyvendinimas.

Išvada

Simbolių pažodis yra vienas simbolis atskirose kabutėse. Pabėgimo seka yra simbolis, kuris taip pat gali būti vienas kabutes. Eilių eilutė yra simbolių seka dvigubose kabutėse. Eilių eilutė yra simbolių masyvas, kuris baigiasi 0. Lygybės ir santykių operatoriai dirba su simbolių literalais. Lygybės operatoriai dirba su stygų literalais, tačiau santykių operatoriai neveikia su stygų literalais. Simbolių identifikatoriai gali būti naudojami lyginant, tačiau eilučių identifikatoriai neturėtų būti naudojami lyginant. Neapdorotas eilutės literalas leidžia rodyti eilutę kaip įvestą, neatsižvelgiant į pabėgimo sekas ir nepaisant naujų eilučių.

Chrys