A C ++ String Literal használata

How Use C String Literal



A számítógép billentyűzetén karakterek vannak nyomtatva. Amikor megnyom egy gombot, megjelenik a karakter a képernyőn. Megjegyzés: a szóköz is karakter. A karakterlánc a karakterek sorozata. Ez a cikk a C ++ karakterláncok használatát ismerteti. A cikk megértéséhez tudnia kell a C ++ tömbökről és mutatókról.

Karakter Literal

A karakter literál egy idézőjelben szereplő karakter. Így,







charident1= 'NAK NEK'; charident2= 'b'; charident3= '4'; charident4= „6”;

a karakterek különböző definíciói. Ne feledje, hogy az idézőjelekben szereplő számjegy karakter, és nem egész szám.



A menekülő szekvencia, például (lásd alább) egyetlen idézőjelben, egy karakter. Így,



charident1= '' '';

egy karakter.





A kettős idézőjelek egyetlen szimbóluma nem karakter; ez egy karakterlánc. Tehát A vagy c vagy 2 nem karakter, hanem egy -egy karakterlánc.

A char változója a program későbbi részében a következőképpen rendelhető hozzá:



charazonosító= 'x';
azonosító= 'ÉS';

Ha meg akarja akadályozni, hogy egy azonosítóhoz rendelt karakter megváltozzon, később a programban, akkor a definíciót a fenntartott, const szóval előzze meg az alábbiak szerint:

const charazonosító= 'd';

Az ident változó csak olvasható.

String Literal

A karakterlánc a karakterlánc dupla idézőjelben. Így,

charident1[] = 'Szeretlek'; charident2[] = 'Utálok hármat'; charident3[]
= 'mi vagyunk a világ'; charident4[] = 'Helló Világ!';

a karakterláncok különböző definíciói. Vegye figyelembe az idézőjelek használatát. Nincs olyan, mint egy karakterlánc szokásos változója. A karakterlánc a karakterek tömbje, ahol a {} billentyűvel való elválasztás helyett a sorrendet kell elválasztani. A karaktereket nem választják el vesszővel. A szögletes zárójelekbe bármelyik szám nagyobb, mint a karakterláncban szereplő karakterek száma. A szögletes zárójeleket azonban jobb üresen hagyni.

Az idézőjelek egyetlen karaktere nem karakter; ez egy karakterlánc. Tehát A vagy c vagy 2 nem karakter, hanem egy -egy karakterlánc.

A karakterlánc-változó nem teszi lehetővé a teljes literál újbóli hozzárendelését, később a programban-lásd alább. Az egyes karaktereket azonban újra hozzá lehet rendelni-lásd alább.

Egy- és kettős idézet karakterben vagy szó szerint

Ha egyetlen idézetet szeretne kapni, tegyen valamit, pl.

charazonosító= ' '';

Ha kettős idézetet szeretne kapni egy karakterláncban, tegyen valamit, például:

charazonosító[] = 'el'CD';

A fordított perjelet menekülő sorrendben használják, hogy elkerüljék a határolókkal való ütközést. Ahhoz, hogy kettős idézet legyen a karakter, nincs szükség a fordított perjelre: „’ rendben van. Ahhoz, hogy egyetlen idézet szerepeljen a karakterláncban, nincs szükség a fordított perjelre: az ab’cd rendben van.

Mivel a fordított perjelet egy karakter elhagyására használják, karakterként vagy karakterláncban használva egy másik fordított perjelet kell elhagyni.

Meneküléssorozat

A menekülési sorozat a következők egyike:

''? \ ak nek b f n r> t v

Minden menekülési szekvenciát általában vagy karakterként írnak be az idézőjelek közé, vagy menekülő szekvenciaként az idézőjelek közé.

  • ’: Egyetlen idézőjelként használatos, egyetlen idézőjelen belül.
  • : idézőjel -karakterként használatos, egy literálon belül.
  • ? : azóta? egy fenntartott karakter, szó szerint el kell hagyni.
  • \: a fordított perjelet karakterként vagy karakterláncként kell elhagyni, nehogy más jelentést eredményezzen.
  • a: egyszer vészharangot ad, ha karakterként vagy karakterláncban használják.
  • b: visszajelzőként jelenik meg a kijelzőn egy karakterlánc -literálon belül, eltávolítva az előző karaktert.
  • f: a következő oldalt betölti a nyomtatóba, ha karakterként vagy literálon belül használják.
  • r: visszaadja a kurzort, ahol a következő karaktert kell nyomtatni, de az aktuális soron belül.
  • n: visszaállítja a kurzort a következő sor elejére vagy csak a következő sorra, az operációs rendszertől függően.
  • t: vízszintes fület hoz létre.
  • v: függőleges fület hoz létre.

Műveletek karakterekkel

Összefűzés

A definíció szerint két karakterlánc literál összekapcsolható szóközzel az alábbiak szerint:

charazonosító[] = 'ABC' 'def';
költség<<azonosító<< ' n';

A kimenet: abcdef. Ez a meghatározás több mint két literálra is kiterjeszthető. Megjegyzés: az utasítás definíció, nem csak hozzárendelés. A definíció akár a következő sorra is folytatódhat, a sorokat a következőképpen választva el egymástól:

charazonosító[] = 'ABC' 'def'
'írd fel';
költség<<azonosító<< ' n';

A kimenet: abcdefghi.

Megjegyzés: A karaktereket nem lehet ilyen módon összekapcsolni, mivel a karakter egyes idézőjelei nem tartalmazhatnak több szimbólumot.

Egyenlőségi szereplők

Ugyanazok a karakterek azonos esetben azonosak. Nem egyenlőek, ha nem ugyanabból az esetből állnak. Fontolgat,

bool eredmény= 'B' == 'B';
költség<<eredmény<< ' n';

== jelentése egyenlő, míg = = hozzárendelt és nem egyenlő. A kimenet 1, igaz. Fontolgat,

bool eredmény= 'B' == 'b';
költség<<eredmény<< ' n';

A kimenet 0, hamis. Fontolgat,

bool eredmény= 'b' == 'c';
költség<<eredmény<< ' n';

A kimenet 0, hamis. Fontolgat,

bool eredmény= 'B' ! = 'B';
költség<<eredmény<< ' n';

! = azt jelenti, hogy nem egyenlő, míg = azt jelenti, hogy hozzárendelt és nem egyenlő. A kimenet 0, hamis. Fontolgat,

bool eredmény= 'B' ! = 'b';
költség<<eredmény<< ' n';

A kimenet 1, igaz. Fontolgat,

bool eredmény= 'b' ! = 'c';
költség<<eredmény<< ' n';

A kimenet 1, igaz.

Tehát == és! = Egyenlőség -operátorok.

Relációs operátorok

A C ++ rendes karakterek esetében növekvő sorrendben a számok a nagybetűk előtt állnak, a kisbetűk előtt.

Így= hasonlóan vannak megmagyarázva.

A karakterlánc mint tárgy

A tömb állandó mutató egy adott adattípus -sorozat elejére. Hasonló módon a karakterlánc állandó mutató a karaktersorozat elejére. Hasonlítsa össze a következő definíciókat:

intarr[] = {3, 4, 5, 6, 7};
charo[] = {'ban ben', 'vagy', 'én', 'nak nek', 'n'};
charstri[] = 'nő';

Az első tömb ints tömb, és öt elemből áll. A második és a harmadik tömb különböző karakterekből álló tömbök, de azonos számú elem. A második és a harmadik tömb ugyanaz, de a nevük miatt. A második tömb szövegtartalmát zárójelek határolják; a karaktereket vessző választja el egymástól, és minden karakter egy idézőjelben van. A harmadik tömb szövegtartalmát idézőjelek határolják; a karaktereket nem választják el vesszővel, és minden karakter nincs idézőjelben. A második és a harmadik tömb két módszer a karakterlánc előállítására, a harmadik módszer a jobb.

Az arr állandó mutató a tömb első elemére, vagyis az arr mindig a 3 -as egész számmal rendelkező helyre mutat, még akkor is, ha a 3 érték megváltozik. A tömb mérete, öt elem, valójában nem marad állandó. A tömb minden értéke azonban megváltoztatható.

Az str állandó tömb első mutatója a tömb első elemére, vagyis az str mindig a „w” karakterű helyre mutat, még akkor is, ha a „w” értéke megváltozik. Az öt elemből álló karakter tömb mérete valójában nem marad állandó. A literál értékei azonban megváltoztathatók.

Az stri állandó mutató a literál (tömb) első elemére, vagyis az stri mindig a w karakterrel rendelkező helyre mutat, még akkor is, ha w értéke megváltozik. A karakterlánc literál (tömb) mérete, öt elem, valójában nem marad állandó. A literál minden értéke azonban módosítható.

Mi az állandó egy tömbben vagy karakterláncban? A tömb vagy literál első elemének memóriacíme a tömb vagy literál nevének (azonosítójának) értéke marad, és nem módosítható. Nos, a tömb vagy a literál mérete valójában nem marad állandó. A tömb vagy a literál minden értéke megváltoztatható. A következő kód megmutatja, hogy az egyes tömbök negyedik eleme hogyan változott:

intarr[] = {3, 4, 5, 6, 7};
charo[] = {'ban ben', 'vagy', 'én', 'nak nek', 'n'};
charstri[] = 'nő';

arr[3] = 9;
o[3] = 'És';
stri[3] = 'És';

költség<<arr[3] << ' n';
költség<<o<< ' n';
költség<<stri<< ' n';

A kimenet:

9
asszonyok
nők

Ne feledje, hogy egy meghatározott karakterlánc -literál elemei, mint a fenti harmadik definíció, a tömbindex (alindex) segítségével érhetők el. A kimenet második sorának okát az alábbiakban adjuk meg.

Definíció Előírás

Vegye figyelembe, hogy a fenti definíciókban nincs egész szám az alsó indexhez. Ha a programozó nem tudja könnyen meghatározni az elemek számát, akkor az alsó index egész számát ki kell hagyni. Bármi legyen is a helyzet, az egész szám nem lehet kevesebb, mint a tömb elemeinek száma.

A karakterlánc literál esetében az egész számnak legalább 1 -rel nagyobbnak kell lennie, mint a karakterlánc karaktereinek száma. Ennek oka az, hogy a null karaktert ( 0) a fordító mindig hozzáadja egy karakterláncból álló tömb végéhez, amelyet idézőjelek határolnak. A null karakter nem kerül hozzáadásra a fenti második tömb végén, mert nem hivatalos karakterlánc. A harmadik tömb egy hivatalos karakterlánc. A következő kód az alsó index minimális értékeit mutatja.

intarr[5] = {3, 4, 5, 6, 7};
charo[5] = {'ban ben', 'vagy', 'én', 'nak nek', 'n'};
charstri[6] = 'nő';

Annak érdekében, hogy a második definíció hivatalos sztring legyen, a null karaktert a következőképpen kell hozzáadni:

intarr[5] = {3, 4, 5, 6, 7};
charo[6] = {'ban ben', 'vagy', 'én', 'nak nek', 'n', ' 0'};
charstri[6] = 'nő';

A kimenet most legyen,

9
nők
nők

a második nők nélkül. Vegye figyelembe, hogy a második tömb megfelelő indexe 6, és nem 5, mint volt.

Állandó szó szerinti értékek

Ha meg akarja akadályozni, hogy az azonosítóhoz rendelt idézőjelek bármely karaktere módosuljon, később a programban lejjebb, a definíciót a Const fenntartott szóval előzze meg az alábbiak szerint:

const charazonosító[] = 'Szeretlek';

Műveletek karakterláncokkal

Egyenlőségi műveletek

Az egyenlőségi operátorok == és! =. Ha két sztring változóit (azonosítóit) hasonlítjuk össze, akkor a literálok mutatói (címei) végzik az összehasonlítást; az rossz. A karakterláncok összehasonlításához a literálokat kell összehasonlítani, a következő kód szerint:

bool eredmény= 'nő' == 'nő';
költség<<eredmény<< ' n';

A kimenet 1, igaz. Az összehasonlítást a szótárban végezzük, de a számok emelkedő sorrendben az elsők, a nagybetűk előtt, amelyek a kisbetűk előtt. A következő kód kimenete 0, hamis.

bool eredmény= 'nő' ! = 'nő';
költség<<eredmény<< ' n';

Relációs operátorok karakterláncokkal

A relációs operátorok nem dolgoznak karakterlánc -literálokkal.

Raw String Literal

A nyers karakterlánc -literál lehetővé teszi a karakterlánc gépelt megjelenítését, figyelmen kívül hagyva a menekülési szekvenciákat és tiszteletben tartva az új sorokat. Vegye figyelembe a következő kódot:

charo[] =R'(ABC\d efg ő
klmn n'
'opq
első) ';
költség<< str << '
n';

A kimenet:

abc \ d efg ő
klmn n'' opq
első

A kódban a nyers karakterlánc -literál R -vel kezdődik, majd utána és (. Vége) és.

C ++ fő karakterláncok

char

A char típus az eredeti C ++ típus, és általában 8 bitben tárolja a karaktert.

char16_t

Ez 16 karakterben tárolja a karaktert.

char32_t

Ez 32 bitben tárolja a karaktert.

wchar_t

char16_t és char32_t széles karakterek. A wchar_t egy széles karakter, amely saját tulajdonú és megvalósítás által meghatározott.

Következtetés

A karakter literal egyetlen karakter egyetlen idézőjelben. A menekülési szekvencia olyan karakter, amely egyetlen idézőjelben is szerepelhet. A karakterlánc a karakterlánc dupla idézőjelben. A karakterlánc a karakterek tömbje, amely 0 -val végződik. Az egyenlőség- és relációs operátorok karakter literálokkal dolgoznak. Az egyenlőségi operátorok karakterlánc -literálokkal dolgoznak, de a relációs operátorok nem karakterlánc -literálokkal. Karakter azonosítók használhatók az összehasonlítások során, de a karakterlánc -azonosítókat nem szabad használni az összehasonlítások során. A nyers karakterlánc -literál lehetővé teszi a karakterlánc gépelt megjelenítését, figyelmen kívül hagyva a menekülési szekvenciákat és tiszteletben tartva az új sorokat.

Chrys