C ++

A C ++ String Literal használata

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

Karakter szó

A szó szerinti karakter egy idézőjelben szereplő karakter. Így,

char ident1 = 'A'; char ident2 = 'b'; char ident3 = '4'; char ident4 = '6';

a karakterek különböző definíciói. Vegye figyelembe, hogy az egyetlen idézőjelben lévő számjegy karakter, és nem egész szám.

Az olyan menekülési szekvencia, mint a \ ”(lásd alább) egyetlen idézőjelben, egy karakter. Így,

char ident1 = "" ";

egy karakter.

A kettős idézőjelben szereplő egyetlen szimbólum nem karakter; egy karakterből álló húr. Tehát az „A”, „c” vagy „2” nem karakter, hanem egy-egy karakterlánc.

A char változója az alábbiak szerint átrendelhető, később a programban:

char ident = 'x';
azonosító = 'Y';

Ha le akarja állítani az azonosítóhoz rendelt karakter megváltoztatását, a program későbbi részében előzze meg a definíciót a fenntartott const szóval, az alábbiak szerint:

const char ident = 'd';

Az ident változó csak olvasható.

Húr Szó

A karakterlánc egy karaktersorozat kettős idézőjelben. Így,

char ident1 [] = "Szeretlek"; char ident2 [] = "3-at utálok"; char ident3 []
= "mi vagyunk a világ"; char ident4 [] = "Helló világ!";

a string literálok különböző definíciói. Vegye figyelembe a dupla idézőjelek használatát. A karakterlánchoz nincs semmi hasonló, mint egy közönséges változó. A karakterlánc karakterek tömbje, ahol a (z) karakterrel való elválasztás helyett a sorozatot "" -nel határolja. A karaktereket nem vessző választja el. Bármely nagyobb szám, mint a karakterlánc karakterláncában, elhelyezhető a szögletes zárójelben. Jobb azonban a szögletes zárójeleket üresen hagyni.

A kettős idézőjelben szereplő egyetlen karakter nem karakter; egy karakterből álló húr. Tehát az „A”, „c” vagy „2” nem karakter, hanem egy-egy karakterből álló karakterlánc.

A string 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 karakterek azonban újból hozzárendelhetők - lásd alább.

Egyetlen és kettős idézet karakteres vagy szó szerinti

Ha egyetlen idézet van karakterként, tegyen valami hasonlót,

char ident = '\' ';

Ha kettős idézetet szeretne kapni karakterként egy karakterláncban, tegyen valami hasonlót,

char ident [] = "ab" cd ";

A visszavonást menekülési sorrendben használják, hogy elkerüljék az elválasztókkal való ütközést. Ahhoz, hogy kettős idézet legyen karakterként, nincs szükség a visszavonásra: a '' 'rendben van. Ahhoz, hogy egyetlen idézet szerepeljen a karakterláncban, nincs szükség a visszavonásra: az „ab'cd” rendben van.

Mivel a hátlapot egy karakter elmenekülésére használják, egy másik visszavágóval meg kell kerülnie, ha karakterként vagy karakterláncban használjuk.

Menekülés szekvencia

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

\ '"\? \\ \ a \ b \ f \ n \ r> \ t \ v

Az egyes menekülési szekvenciákat általában karakterként írják be egyetlen idézőjelbe, vagy menekülési szekvenciának a kettős idézőjelbe.

Műveletek karakterekkel

Összefűzés

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

char ident [] = "abc" "def";
cout << ident << "\n";

A kimenet: abcdef . Ez a meghatározás kettőnél több literálra is kiterjeszthető. Megjegyzés: az utasítás definíció, nem csak hozzárendelés. A meghatározás folytatható a következő sorig is, a szóközök elválasztásával az alábbiak szerint:

char ident [] = "abc" "def"
"ghi";
cout << ident << "\n";

A kimenet abcdefghi.

Megjegyzés: A karaktereket nem lehet összefűzni ilyen módon, mivel a karakter egyetlen idézőjelében nem lehet egynél több szimbólum.

Egyenlőség operátorok

Ugyanazon karakterek ugyanabban az esetben egyenlőek. Nem egyenlőek, ha nem ugyanabból az esetből állnak. Fontolgat,

bool eredmény = 'B' == 'B';
cout << result << "\n";

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

bool eredmény = 'B' == 'b';
cout << result << "\n";

A kimenet értéke hamis. Fontolgat,

bool eredmény = 'b' == 'c';
cout << result << "\n";

A kimenet értéke hamis. Fontolgat,

bool eredmény = 'B' != 'B';
cout << result << "\n";

!= = nem egyenlő, míg = jelentése: nem-egyenlő. A kimenet értéke hamis. Fontolgat,

bool eredmény = 'B' != 'b';
cout << result << "\n";

A kimenet true értékre 1. Fontolgat,

bool eredmény = 'b' != 'c';
cout << result << "\n";

A kimenet true értékre 1.

Tehát, == és != az egyenlőség operátorai.

Relációs operátorok

A C ++ nyelvű, hétköznapi karakterek esetében növekvő sorrendben a számok nagybetűk elé kerülnek, amelyek kisbetűk elé kerülnek.

Így < will return true (1) when the left character is less than the right character. The other relational operators, <=, >, > = hasonlóan magyarázzák.

A karakterlánc, mint tárgy

A tömb állandó mutató egy adott adattípus szekvencia elejére. Hasonlóképpen, a karakterlánc állandó mutató a karaktersor kezdetére. Hasonlítsa össze a következő definíciókat:

int arr [] = 3, 4, 5, 6, 7;
char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "nő";

Az első tömb tömb tömb, és öt elemből áll. A második és a harmadik tömb különféle nevű, de azonos számú elemet tartalmazó karakterek tömbje. A második és a harmadik tömb megegyezik, de a nevük szerint. A második tömb szövegtartalmát zárójelek határolják; a karaktereket vesszők választják el, és mindegyik karakter egyetlen idézőjelben szerepel. A harmadik tömb szövegtartalmát dupla idézőjelek határolják; a karaktereket nem választja el vesszővel, és az egyes karakterek nem állnak egyetlen idézőjelben. A második és a harmadik tömb kétféle módon állíthatja elő a karakterláncot, a harmadik módszer pedig a jobb módszer.

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

Az str egy állandó mutató 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. A karaktertömb mérete, öt elem, valójában nem marad állandó. A literál értéke azonban megváltoztatható.

A strip állandó mutató a literál (tömb) első elemére, vagyis a stri mindig a karakterrel rendelkező helyre mutat, w akkor is, ha a w értéke megváltozik. A karakterlánc (tömb) öt elemének mérete nem igazán marad állandó. A literál értékei azonban módosíthatók.

Mi á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ékeként marad, és nem változtatható meg. Nos, a tömb vagy a literál mérete valóban nem marad állandó. A tömbben vagy literálban minden érték megváltoztatható. A következő kód megmutatja, hogyan változott az egyes tömbök negyedik eleme:

int arr [] = 3, 4, 5, 6, 7;
char str [] = 'w', 'o', 'm', 'a', 'n';
char stri [] = "nő";
arr [3] = 9;
str [3] = 'e';
csík [3] = 'e';
cout << arr[3] << '\n';
cout << str << '\n';
cout << stri << '\n';

A kimenet:

9
női nők
nők

Ne feledje, hogy egy meghatározott karakterlánc elemeinek elemei, hasonlóan a fenti harmadik definícióhoz, a tömb indexével (alindexével) érhetők el. A kimenet második sorának okát az alábbiakban adjuk meg.

Definíció Aláírás

Ne feledje, hogy a fenti meghatározásokban nincs egész szám az indexhez. Ha az elemek számát a programozó nem tudja könnyen meghatározni, az al index egész számát el kell hagyni. Bármi legyen is az eset, az egész szám nem lehet kevesebb, mint a tömb elemeinek száma.

A literál karakterlánc esetében az egész számnak legalább 1-gyel nagyobbnak kell lennie, mint a karakterláncok száma. Ez azért van, mert a null karaktert (\ 0) a fordító mindig hozzáadja egy tömb végén, amely egy string, dupla idézőjelekkel elválasztva. A null karaktert a fenti második tömb végén nem adjuk meg, mert ez nem hivatalos karakterlánc. A harmadik tömb hivatalos karakterlánc. A következő kód a minimum index értékeket mutatja.

int arr [5] = 3, 4, 5, 6, 7;
char str [5] = 'w', 'o', 'm', 'a', 'n';
char stri [6] = "nő";

Annak érdekében, hogy a második meghatározás hivatalos karakterlánc legyen, a null karaktert a következőképpen kell hozzáadni:

int arr [5] = 3, 4, 5, 6, 7;
char str [6] = 'w', 'o', 'm', 'a', 'n', '\ 0';
char stri [6] = "nő";

A kimenetnek most kell lennie,

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 az azonosítóhoz rendelt dupla idézőjelek bármely karakterének módosítását, később a programban, előzze meg a definíciót a fenntartott, const szóval az alábbiak szerint:

const char ident [] = "szeretlek";

Műveletek vonós literálokkal

Egyenlőségi műveletek

Az egyenlőség operátorai == és != . Két karakterlánc változóinak (azonosítóinak) összehasonlításakor végül a literálok mutatói (címei) kerülnek összehasonlításra; az rossz. A húrok összehasonlításához össze kell hasonlítani a literálokat, a következő kód szerint:

bool eredmény = "nő" == "nő";
cout << result << '\n';

A kimenet true értékre 1. Az összehasonlítás szótár módon történik, de növekvő sorrendben először a számok kerülnek a nagybetűk elé, amelyek a kisbetűk elé kerülnek. A következő kód kimenete 0, hamis értékre.

bool eredmény = "nő" != "nő";
cout << result << '\n';

Relációs operátorok húrliterekkel

A relációs operátorok nem dolgoznak karakterláncokkal.

Nyers húr literál

Nyers karakterlánc, 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:

char str [] = R "(abc \\ d efg hidzs
klmn \ n "'opq
első) ";
cout << str << '\n';

A kimenet:

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

A kódban a nyers karakterlánc R betűvel kezdődik, majd a ”és ( . A következővel végződik: és.

C ++ fő karakterlánc-literális típusok

char

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

char16_t

Ez egy karaktert 16 bitben tárol.

char32_t

Ez 32 karakterben tárol egy karaktert.

wchar_t

A char16_t és a char32_t széles karakterek. A wchar_t egy széles karakter, amely saját és implementáció által definiált.

Következtetés

A karakter szó szerinti egyetlen karakter egyetlen idézőjelben. A menekülési szekvencia olyan karakter, amely egy idézőjelben is szerepelhet. A karakterlánc egy karaktersorozat dupla idézőjelben. A karakterlánc a karakterek tömbje, amelyek végződése \ 0. Az egyenlőség és a relációs operátorok a karakter literálokkal működnek. Az egyenlőség operátorai string literálokkal dolgoznak, de a relációs operátorok nem string karakterekkel. Karakterazonosítók használhatók az összehasonlításokban, de a karakterlánc-azonosítókat nem szabad használni az összehasonlításokban. A nyers karakterlánc lehetővé teszi, hogy a karakterlánc gépeltként jelenjen meg, figyelmen kívül hagyva a menekülési szekvenciákat és tiszteletben tartva az új sorokat.

Chrys

A kurzor véletlenszerűen ugrik vagy mozog, miközben gépel a Windows 10-ben
Ha úgy találja, hogy az egér kurzor önállóan, automatikusan, véletlenszerűen ugrik vagy mozog, miközben gépel Windows laptopba vagy számítógépbe, akko...
Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...