String и символни литерали (в)
Шестнадесетично бягство последователност - наклонена черта, последвана от характера х и низ от шестнадесетични цифри. Избяга-последователности, които не съдържат шестнадесетични цифри, причинявайки C2153 грешка компилатор. Тази грешка съобщава, че шестнадесетичен литерали, трябва да съдържат най-малко един шестнадесетичен цифра. Избяга-последователност, съдържаща и двете шестнадесетичен и други знаци в изчисляването на добив последния neshestnadtsaterichny символ. Най-високата стойност шестнадесетичен - 0xff.
наклонена черта (\) - линия-продължение характер, ако това е в края на линията. Ако и обратно наклонена черта, която искате да използвате като характер буквален, две наклонени черти трябва да въведат ред (\\). За повече информация за символ на продължаването линия, виж. Раздел излъчва фаза.
А низ буквално е последователност от знаци, които заедно образуват нулева прекратено низ. Героите трябва да са оградени с двойни кавички. Следните видове низовете.
Тесните низовете
Тесен символни низове, - е нищожна-прекратен константи на Чар масив. който може да съдържа всякакви графични символи, с изключение на двойни кавички ( "), наклонена черта (\) или нов ред характер. Тясна низ буквално може да съдържа аварийни последователности, посочени в раздел забележителност литерали C ++.
Разширено низовете
Разширено символни низове, - е нищожна-прекратен константи на wchar_t масив. като се започне с префикс L. В този набор може да включва всякакви графични символи с изключение на двойно-цитат ( "), наклонена черта (\) и нов ред. Advanced низ буквално може да съдържа бягство последователност, посочена в литерали забележителност C ++.
Нетретирани низовете (C ++ 11)
Нелекуваната символни низове. - С това завършва нула стойност на масив от символи от всякакъв вид, които могат да включват всякакви графики, включително марки на двойни кавички ( "), наклонена черта, (\) и нов ред суров низовете често се използват в регулярните изрази, които се използват . класове характер, както и HTML и XML струни за примери, вижте следната статия :. Често задавани въпроси Бярне Строуструп по C ++ 11 (Q & C ++ от Бярне Строуструп 11).
Separator - то съдържа до 16 знака обичай последователност, която стои точно преди скобите на отваряне и веднага след затваряща скоба сурови символни низове. Дистанционни могат да бъдат използвани, за да се направи разграничение между редовете, съдържащи двойни кавички и скоби. Следващият ред предизвика грешка съставител:
Литерали STD :: низ (C ++ 14)
Std :: низовете са персонализирани литерали за изпълнение въз основа на стандартната библиотека (вж. По-долу) и получен чрез добавяне на префикс "xyx" S (с наставка и). Този тип низовете създава временни обекти, като STD :: низови, станд :: wstring, станд :: u32string или STD :: u16string, в зависимост от определен префикс. Ако не се използва префикса, както е показано по-горе, създава обект от тип станд :: низ. Ако използвате префикс L "XYZ" S на, създава обект от тип станд :: wstring. При използване на префикс ф "ЮЯ" и създава обект от тип станд :: u16string. префикс U "XYZ" S - обект от тип станд :: u32string.
Наставката "S" може да се използва за суровите низовете:
Литерали станд :: низ е определено в пространството от имена STD :: Буквите :: string_literals в заглавната част на файла
Размерът на низовете
За низове от тип Чар * кодиран ANSI (не UTF-8) символни низове, размер (в байтове) е един повече от броя на символите в низа (като се има предвид крайната нулата). размер не е пряко свързано с броя на редовете на знака за другите типове. В UTF-8 кодиране за кодиране на някои кодови единици, използвани до четири символни елементи, както и за вида char16_t wchar_t и 16-битов Unicode - два елемента (четири байта), за да кодират аудио код уреда. По-долу е размерът на удължен низ буквално.
Имайте предвид, че strlen () и wcslen () не се вземат под внимание размера на символа прекратяване нула, равна на размера на редови тип елемент: един байт до въглен * низ, два байта за wchar_t * струни и char16_t *, както и четири байта за струни char32_t *.
Максималната дължина на символни низове - 65535 байта. Това ограничение се отнася както за тесни и разширен, за да низовете.
Смяна на низовете
Тъй низовете са константи (с изключение на литерали STD: низ), се опитва да промени (например: ул [2] = "А") са грешка компилатор.
Единица, която се отнася само за системи от Microsoft
В Visual C ++ буквално низ може да се използва за инициализиране указател към не-постоянна стойност от тип CHAR или wchar_t. Оставя се в C код, но не се препоръчва в C ++ 98 и отстранява от C ++ 11. Опитайте се да промените низ ще предизвика нарушение на достъп, както е показано в следния пример: