Како се користи Ц ++ Стринг Литерал

How Use C String Literal



На тастатури рачунара налазе се одштампани знакови. Када притиснете тастер, видећете знак на екрану. Напомена: размак је такође знак. Низ литерала је низ знакова. Овај чланак објашњава како се користе литерални низови Ц ++. Требали бисте знати о Ц ++ низовима и показивачима да бисте разумели овај чланак.

Цхарацтер Литерал

Словни дослов је карактер у појединачним наводницима. Тако,







цхаридент1= 'ДО'; цхаридент2= 'б'; цхаридент3= '4'; цхаридент4= '6';

све су различите дефиниције ликова. Имајте на уму да је цифра у појединачним наводницима знак, а не цео број.



Есцапе низ, попут (види доле) у појединачним наводницима, је знак. Тако,



цхаридент1= '' ';

је лик.





Један симбол у двоструким наводницима није знак; то је низ од једног карактера. Дакле, А или ц или 2 није знак, већ је низ од по једног знака.

Променљива цхар може се поново доделити, касније у програму, на следећи начин:



цхаридент= 'Икс';
идент= 'И';

Да бисте спречили промену карактера додељеног идентификатору, касније у програму, претходите дефиницији резервисаном речју цонст, на следећи начин:

цонст цхаридент= 'д';

За променљиву идент се каже да је само за читање.

Стринг Литерал

Низ литерала је низ знакова у двоструким наводницима. Тако,

цхаридент1[] = 'Волим те'; цхаридент2[] = 'Мрзим вас 3'; цхаридент3[]
= 'ми смо свет'; цхаридент4[] = 'Здраво Свете!';

су све различите дефиниције низова. Обратите пажњу на употребу двоструких наводника. Не постоји ништа попут обичне променљиве за низ. Низ литерала је низ знакова, где је уместо разграничења са {}, низ разграничен са. Знакови се не одвајају зарезима. Било који број већи од броја знакова у дословном низу може се ставити у угласте заграде. Међутим, боље је оставити углате заграде празним.

Један знак у двоструким наводницима није знак; то је низ од једног карактера. Дакле, А или ц или 2 није знак, већ низ од по једног карактера.

Променљива стринга не дозвољава поновно додељивање потпуног литерала, касније у програму-погледајте доле. Међутим, појединачни знакови се могу поново доделити-погледајте доле.

Једноструки и двоструки цитат у знаку или буквално

Да бисте имали један цитат као лик, учините нешто попут,

цхаридент= ' '';

Да бисте имали двоструки навод као карактер у дословном низу, урадите нешто попут,

цхаридент[] = 'далеко'ЦД';

Обрнута коса црта се користи у низу за избегавање да би се избегао сукоб са граничницима. Да бисте имали двоструки наводник као знак, нема потребе за обрнутом косом цртом: '' је у реду. Да бисте имали један наводник у дословном низу, нема потребе за обрнутом косом цртом: аб’цд је у реду.

Пошто се обрнута коса црта користи за избегавање карактера, мора се избећи другом обрнутом косом цртом када се користи као знак или у литералном низу.

Есцапе Секуенце

Есцапе секвенца је једна од:

''? \ до б ф н р> т в

Свака евакуациона секвенца се обично откуцава или као знак унутар једноструких наводника или као евакуациона секвенца унутар двоструких наводника.

  • ’: Користи се као један наводник унутар појединачних наводника.
  • : се користи као двоструки наводник, унутар дословца.
  • ? : Од ? је резервисан знак, треба га избећи у дословном знаку.
  • \: обрнута коса црта треба да се избегне као знак или у низу да не би резултирало неким другим значењем.
  • а: једном се оглашава алармом, када се користи као знак или унутар литералног низа.
  • б: резултира као бацкспаце на екрану унутар литералног низа, скидајући претходни знак.
  • ф: узрокује да се следећа страница убаци у штампач када се користи као знак или унутар литералне ознаке.
  • р: враћа курсор, где ће се одштампати следећи знак, али унутар тренутне линије.
  • н: враћа курсор на почетак следећег реда или само на следећи ред, у зависности од оперативног система.
  • т: ствара хоризонталну картицу.
  • в: ствара вертикалну картицу.

Операције са ликовима

Повезивање

По дефиницији, два литерала низа могу се спојити размаком на следећи начин:

цхаридент[] = 'абц' 'деф';
цена<<идент<< ' н';

Излаз је: абцдеф. Ова дефиниција се може проширити на више од два литерала. Напомена: изјава је дефиниција, а не само задатак. Дефиниција се чак може наставити на следећи ред са размаком који раздваја редове на следећи начин:

цхаридент[] = 'абц' 'деф'
'узети на знање';
цена<<идент<< ' н';

Излаз је, абцдефгхи.

Напомена: Знакови се не могу спојити на овај начин, јер појединачни наводници за знак не могу имати више од једног симбола.

Оператори једнакости

Исти знакови у истом падежу су једнаки. Нису једнаки ако нису из истог случаја. Размотрити,

боол резултат= 'Б' == 'Б';
цена<<резултат<< ' н';

== значи једнако, док = значи додељено и није једнако. Излаз је 1 за труе. Размотрити,

боол резултат= 'Б' == 'б';
цена<<резултат<< ' н';

Излаз је 0 за фалсе. Размотрити,

боол резултат= 'б' == 'ц';
цена<<резултат<< ' н';

Излаз је 0 за фалсе. Размотрити,

боол резултат= 'Б' ! = 'Б';
цена<<резултат<< ' н';

! = значи није једнако, док = значи додељено и није неједнако. Излаз је 0 за фалсе. Размотрити,

боол резултат= 'Б' ! = 'б';
цена<<резултат<< ' н';

Излаз је 1 за труе. Размотрити,

боол резултат= 'б' ! = 'ц';
цена<<резултат<< ' н';

Излаз је 1 за труе.

Дакле, == и! = Су оператори једнакости.

Релацијски оператори

За обичне знакове у Ц ++, у растућем редоследу, бројеви долазе испред великих слова, који долазе испред малих слова.

Тако= су слично објашњени.

Литерални низ као објекат

Низ је константан показивач на почетак одређеног низа типова података. Слично, низ је константан показивач на почетак секвенце знакова. Упоредите следеће дефиниције:

интарр[] = {3, 4, 5, 6, 7};
цхарп[] = {'ин', 'или', 'м', 'до', 'н'};
цхарстри[] = 'жена';

Први низ је низ интс и има пет елемената. Други и трећи низ су низови знакова са различитим именима, али са истим бројем елемената. Други и трећи низ су исти, али за њихова имена. Текстуални садржај другог низа разграничен је заградама; знакови су одвојени зарезима, а сваки знак је под наводницима. Текстуални садржај трећег низа омеђен је двоструким наводницима; знакови се не одвајају зарезима и сваки знак није у појединачним наводницима. Други и трећи низ су два начина стварања низа, при чему је трећи начин бољи начин.

арр је константан показивач на први елемент свог низа, што значи да ће арр увек показивати на локацију која има цео број 3, чак и ако се вредност 3 промени. Величина низа, пет елемената, заправо не остаје константна. Међутим, свака од вредности низа се може променити.

стр је константан показивач на први елемент свог низа, што значи да ће стр увек показивати на локацију која има карактер, 'в' чак и ако се вредност 'в' промени. Величина поља знакова, пет елемената, заправо не остаје константна. Међутим, свака од вредности литерала се може променити.

стри је константан показивач на први елемент свог литерала (низ), што значи да ће стри увек показивати на локацију која има карактер, в чак и ако се вредност в промени. Величина дословног низа (низа), пет елемената, заправо не остаје константна. Међутим, свака од вредности литерала може се променити.

Шта је константа у низу или низу? Меморијска адреса првог елемента низа или литерала остаје као вредност имена (идентификатора) низа или литерала и не може се мењати. Па, величина низа ни литерала заправо не остаје константна. Свака вредност у низу или литералу може се променити. Следећи код приказује како је четврти елемент сваког од низа промењен:

интарр[] = {3, 4, 5, 6, 7};
цхарп[] = {'ин', 'или', 'м', 'до', 'н'};
цхарстри[] = 'жена';

арр[3] = 9;
п[3] = 'И';
стри[3] = 'И';

цена<<арр[3] << ' н';
цена<<п<< ' н';
цена<<стри<< ' н';

Излаз је:

9
жене -жене
Жене

Имајте на уму да се елементима дефинисаног низала, као и за горњу трећу дефиницију, може приступити помоћу индекса низа (индекса). Разлог за други ред излаза дат је у наставку.

Дефиниција Субсцрипт

Имајте на уму да у горњим дефиницијама не постоји цео број за индекс. Када се број елемената не може лако одредити, програмер би требао изоставити цијели број за индекс. У сваком случају, цео број не сме бити мањи од броја елемената у низу.

За литерал низа цео број треба да буде бар 1 већи од броја знакова у низу. То је зато што компајлер увек додаје нулл знак ( 0), на крају низа који је низ, омеђен двоструким наводницима. Нулти знак се не додаје на крају другог низа изнад, јер није службени низ. Трећи низ је званични низ. Следећи код приказује минималне вредности индекса.

интарр[5] = {3, 4, 5, 6, 7};
цхарп[5] = {'ин', 'или', 'м', 'до', 'н'};
цхарстри[6] = 'жена';

Да би друга дефиниција постала службени низ, нулл знак се мора додати на следећи начин:

интарр[5] = {3, 4, 5, 6, 7};
цхарп[6] = {'ин', 'или', 'м', 'до', 'н', ' 0'};
цхарстри[6] = 'жена';

Излаз би сада требао бити,

9
Жене
Жене

без других жена. Имајте на уму да је одговарајући индекс за други низ 6, а не 5 као што је био.

Константне дословне вредности

Да бисте спречили да се било који знак у двоструким наводницима додељен идентификатору мења, касније у програму, претходи дефиницији резервисаном речју, цонст, на следећи начин:

цонст цхаридент[] = 'Волим те';

Операције са низовима знакова

Операције једнакости

Оператори једнакости су == и! =. Када се упореде променљиве (идентификатори) два низа, на крају се упоређују показивачи (адресе) литерала; то је погрешно. Да би се упоредили низови, литерали се морају упоредити, као у следећем коду:

боол резултат= 'жена' == 'жена';
цена<<резултат<< ' н';

Излаз је 1 за труе. Поређење се врши у речнику, али са бројевима који долазе први у растућем редоследу, пре великих слова, која долазе испред малих слова. Излаз следећег кода је 0, за фалсе.

боол резултат= 'жена' ! = 'жена';
цена<<резултат<< ' н';

Релациони оператори са литералима стрингова

Оператори релације не раде са литералима низа.

Рав Стринг Литерал

Сирови литерал низа, дозвољава да се низ прикаже као откуцан, занемарујући есцапе секвенце и поштујући нове редове. Узмите у обзир следећи код:

цхарп[] =Р'(абц\д ефг хе
клмн н'
'опк
рст) ';
цена<< str << '
н';

Излаз је:

абц \ д ефг хе
клмн н'' опк
рст

У коду, сирови литерал започиње са Р, након чега следе и (. Завршава се са) и.

Ц ++ литерални типови главних стрингова

цхар

Тип цхар је оригинални Ц ++ тип и обично би чувао знак у 8 бита.

цхар16_т

Ово складишти знак у 16 ​​бита.

цхар32_т

Ово складишти знак у 32 бита.

вцхар_т

цхар16_т и цхар32_т су широки знакови. вцхар_т је широк карактер који је власнички и дефинисан имплементацијом.

Закључак

Словна слова су појединачни знакови у појединачним наводницима. Есцапе секвенца је знак који може бити и у појединачним наводницима. Низ литерала је низ знакова у двоструким наводницима. Низ знакова је низ знакова који завршавају са 0. Оператори једнакости и релације раде са литералима знакова. Оператори једнакости раде са низовима, али оператори релације не раде са низовима. Идентификатори знакова могу се користити у поређењима, али идентификатори стрингова не треба користити у поређењима. Сирови литерал низа дозвољава да се низ прикаже као откуцан, игноришући есцапе секвенце и поштујући нове редове.

Цхрис