Как да използвате C ++ String Literal

How Use C String Literal



На клавиатурата на компютъра има отпечатани знаци. Когато натиснете клавиш, виждате знака на екрана. Забележка: интервалът също е символ. Низовият литерал е поредица от знаци. Тази статия обяснява как да използвате низови литерали на C ++. Трябва да знаете за C ++ масиви и указатели, за да разберете тази статия.

Литерален символ

Литерален символ е символ в единични кавички. Така,







charидентичен1= 'ДА СЕ'; charидентичен2= 'b'; charидентичен3= '4'; charident4= '6';

всички са различни дефиниции на знаци. Обърнете внимание, че цифрата в единични кавички е знак, а не цяло число.



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



charидентичен1= '' ';

е герой.





Един символ в двойни кавички не е знак; това е низ от един знак. Така че A или c или 2 не е знак, а е низ от по един знак.

Променливата на char може да бъде преназначена, по -късно в програмата, както следва:



charидентичен= 'х';
идентичен= 'И';

За да спрете промяна на знак, присвоен на идентификатор, по -късно в програмата, предшествайте дефиницията със запазената дума const, както следва:

const charидентичен= 'д';

Променливата ident се казва само за четене.

Низово литерално

Низовият литерал е поредица от знаци в двойни кавички. Така,

charидентичен1[] = 'Обичам те'; charидентичен2[] = 'Мразя 3 от вас'; charидентичен3[]
= 'ние сме светът'; charident4[] = 'Здравей свят!';

всички са различни дефиниции на низови литерали. Обърнете внимание на използването на двойни кавички. Няма нищо като обикновена променлива за низ. Низовият литерал е масив от символи, където вместо да ограничава с {}, последователността е разделена с. Символите не са разделени със запетаи. Всяко число, по -голямо от броя на символите в низовия литерал, може да бъде поставено в квадратните скоби. Въпреки това е по -добре да оставите квадратните скоби празни.

Един знак в двойни кавички не е символ; това е низ от един знак. Така че A или c или 2 не е знак, а низ от по един знак.

Низовата променлива не позволява повторно присвояване на пълния литерал, по-късно в програмата-вижте по-долу. Въпреки това, отделни знаци могат да бъдат преназначени-вижте по-долу.

Единичен и двоен цитат в знак или буквално

За да имате един цитат като герой, направете нещо като,

charидентичен= ' '';

За да имате двойни кавички като знак в низов литерал, направете нещо като,

charидентичен[] = 'далеч'CD';

Обратната наклонена черта се използва в евакуационна последователност, за да се избегне конфликт с разделители. За да имате двоен цитат като герой, няма нужда от обратната черта: „‘ е наред. За да имате единична кавичка в низов литерал, няма нужда от обратната черта: ab’cd е наред.

Тъй като обратната наклонена черта се използва за избягване на знак, тя трябва да се избяга с друга обратна наклонена черта, когато се използва като символ или в низов литерал.

Escape Sequence

Евакуационната последователност е една от:

''? \ да се б f н r>T v

Всяка евакуационна последователност обикновено се въвежда или като знак в единични кавички, или като аварийна последователност в двойни кавички.

  • ’: Се използва като знак с единични кавички, в единични кавички.
  • : се използва като знак с двойни кавички, в рамките на литерал.
  • ? : от ? е запазен знак, трябва да се избяга в литерал.
  • \: обратната наклонена черта трябва да се избяга като знак или в низов литерал, за да не се получи някакво друго значение.
  • a: звучи алармено звънене веднъж, когато се използва като знак или в низов литерал.
  • b: резултатите като бекспейс в дисплея в низов литерал, премахвайки предишния знак.
  • f: кара следващата страница да се подава към принтера, когато се използва като символ или в рамките на литерал.
  • r: връща курсора, където следва да се отпечата следващият знак, но в рамките на текущия ред.
  • n: връща курсора към началото на следващия ред или само към следващия ред, в зависимост от операционната система.
  • t: създава хоризонтален раздел.
  • v: създава вертикален раздел.

Операции с герои

Свързване

При дефиницията два низови литерала могат да бъдат съединени с интервал, както следва:

charидентичен[] = 'abc' 'def';
цена<<идентичен<< 'н';

Изходът е: abcdef. Това определение може да бъде разширено до повече от два литерала. Забележка: изявлението е дефиниция, а не просто задание. Определението може дори да продължи към следващия ред с интервал, разделящ редовете, както следва:

charидентичен[] = 'abc' 'def'
'да вземат под внимание';
цена<<идентичен<< 'н';

Изходът е, abcdefghi.

Забележка: Знаците не могат да бъдат свързани по този начин, тъй като единичните кавички за знака не могат да имат повече от един символ.

Оператори на равенство

Едни и същи знаци в един и същи регистър са равни. Те не са равни, ако не са от един и същи случай. Обмисли,

bool резултат= 'В' == 'В';
цена<<резултат<< 'н';

== означава равно, докато = означава присвоено на, а не равно. Изходът е 1 за true. Обмисли,

bool резултат= 'В' == 'b';
цена<<резултат<< 'н';

Изходът е 0 за false. Обмисли,

bool резултат= 'b' == '° С';
цена<<резултат<< 'н';

Изходът е 0 за false. Обмисли,

bool резултат= 'В' ! = 'В';
цена<<резултат<< 'н';

! = означава не-равно, докато = означава присвоено на и не-равно. Изходът е 0 за false. Обмисли,

bool резултат= 'В' ! = 'b';
цена<<резултат<< 'н';

Изходът е 1 за true. Обмисли,

bool резултат= 'b' ! = '° С';
цена<<резултат<< 'н';

Изходът е 1 за true.

Така че == и! = Са оператори на равенство.

Релационни оператори

За обикновените знаци в C ++, във възходящ ред, цифрите идват преди главни букви, които идват преди малки букви.

Така= са обяснени по подобен начин.

Низовият литерал като обект

Масивът е постоянен указател към началото на определена последователност от типове данни. По същия начин низът е постоянен указател към началото на последователност от символи. Сравнете следните определения:

intобр[] = {3, 4, 5, 6, 7};
charстр[] = {'в', 'или', 'аз', 'да се', 'н'};
charстри[] = 'жена';

Първият масив е масив от ints и има пет елемента. Вторият и третият масив са масиви от символи с различни имена, но със същия брой елементи. Вторият и третият масив са същите, но за техните имена. Текстовото съдържание на втория масив е разделено със скоби; знаците са разделени със запетаи и всеки знак е в единични кавички. Текстовото съдържание на третия масив е разделено с двойни кавички; знаците не са разделени със запетаи и всеки знак не е в единични кавички. Вторият и третият масив са два начина за създаване на низ, като третият начин е по -добрият начин.

arr е постоянен указател към първия елемент от неговия масив, което означава, че arr винаги ще сочи към местоположението, съдържащо цяло число, 3 дори ако стойността на 3 се промени. Размерът на масива, пет елемента, всъщност не остава постоянен. Всяка от стойностите на масива обаче може да бъде променена.

str е постоянен указател към първия елемент от неговия масив, което означава, че str винаги ще сочи към местоположението, съдържащо символа „w“, дори ако стойността на „w“ се промени. Размерът на символния масив, пет елемента, всъщност не остава постоянен. Всяка от стойностите на литерала обаче може да бъде променена.

stri е постоянен указател към първия елемент на неговия литерал (масив), което означава, че stri винаги ще сочи към местоположението, което има знака, w дори ако стойността на w се промени. Размерът на низовия литерал (масив), пет елемента, всъщност не остава постоянен. Всяка от стойностите на литерала обаче може да бъде променена.

Какво е константа в масив или низов литерал? Адресът на паметта на първия елемент от масива или литерала остава като стойността на името (идентификатора) на масива или литерала и не може да бъде променен. Е, размерът на масива или литерала всъщност не остава постоянен. Всяка стойност в масива или литерала може да бъде променена. Следният код показва как е променен четвъртият елемент на всеки от масивите:

intобр[] = {3, 4, 5, 6, 7};
charстр[] = {'в', 'или', 'аз', 'да се', 'н'};
charстри[] = 'жена';

обр[3] = 9;
стр[3] = 'И';
стри[3] = 'И';

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

Изходът е:

9
жени жени
Жени

Обърнете внимание, че елементите на дефиниран низов литерал, подобно на третото определение по -горе, могат да бъдат достъпни с индекса на масива (индекс). Причината за втория ред на изхода е дадена по -долу.

Определение Индекс

Обърнете внимание, че в горните дефиниции няма цяло число за индекс. Когато броят на елементите не може да бъде лесно определен от програмиста, цяло число за индекса трябва да бъде пропуснато. Какъвто и да е случаят, цяло число не трябва да бъде по -малко от броя на елементите в масива.

За низовия литерал цяло число трябва да бъде поне 1 по -високо от броя на знаците в низа. Това е така, защото нулевият знак ( 0) винаги се добавя от компилатора, в края на масив, който е низ, разделен с двойни кавички. Нулевият знак не се добавя в края на втория масив по -горе, защото не е официален низ. Третият масив е официален низ. Следният код показва минималните стойности на индекса.

intобр[5] = {3, 4, 5, 6, 7};
charстр[5] = {'в', 'или', 'аз', 'да се', 'н'};
charстри[6] = 'жена';

За да стане второто определение официален низ, нулевият знак трябва да се добави, както следва:

intобр[5] = {3, 4, 5, 6, 7};
charстр[6] = {'в', 'или', 'аз', 'да се', 'н', ' 0'};
charстри[6] = 'жена';

Изходът сега трябва да бъде,

9
Жени
Жени

без вторите жени. Обърнете внимание, че съответният индекс за втория масив е 6, а не 5, както беше.

Постоянни буквални стойности

За да спрете промяна на който и да е знак в двойните кавички, присвоени на идентификатор, по -късно в програмата, предшествайте дефиницията със запазената дума const, както следва:

const charидентичен[] = 'Обичам те';

Операции с низови литерали

Операции за равенство

Операторите за равенство са == и! =. Когато се сравняват променливи (идентификатори) на два низа, в крайна сметка се сравняват указателите (адресите) на литералите; това е грешно. За да сравните низовете, литералите трябва да бъдат сравнени, както в следния код:

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

Изходът е 1 за true. Сравнението се извършва по речника, но с числа, които идват първи във възходящ ред, преди главни букви, които идват преди малки букви. Изходът на следния код е 0, за false.

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

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

Релационните оператори не работят с низови литерали.

Сурови низови литерали

Суров литерал за низ, позволява низ да бъде показан като въведен, като се игнорират евакуационните последователности и се спазват новите редове. Помислете за следния код:

charстр[] =R“(абц\d efg he
klmnн'
' opq
първо) ';
цена<< str << '
н';

Изходът е:

abc \ d efg he
klmn n' ' opq
първо

В кода необработеният литерален низ започва с R, последван от и (. Завършва с) и.

Литерални типове C ++ Main String

char

Типът char е оригиналният C ++ тип и обикновено съхранява знак в 8 бита.

char16_t

Това съхранява знак в 16 бита.

char32_t

Това съхранява знак в 32 бита.

wchar_t

char16_t и char32_t са широки знаци. wchar_t е широк символ, който е собственост и е дефиниран за изпълнение.

Заключение

Литерален символ е единичен знак в единични кавички. Евакуационната последователност е знак, който може да бъде и в единични кавички. Низовият литерал е поредица от знаци в двойни кавички. Низовият литерал е масив от знаци, които завършват с 0. Операторите за равенство и релационни работи с символни литерали. Операторите за равенство работят с низови литерали, но релационните оператори не работят с низови литерали. Идентификаторите на знаци могат да се използват при сравнения, но идентификаторите на низове не трябва да се използват при сравнения. Суровият литерален низ позволява да се показва низ като въведен, като се игнорират евакуационните последователности и се спазват новите редове.

Крис