Символьные константы C++

Символьные константы один или несколько членов базовый символ источника - установка, кодировка, в котором написана программа, заключенные в одиночные кавычки (').Они используются для представления символов в базовый набор символов выполнения, кодировка на компьютер, на котором выполняется программа.

Только для систем Microsoft

Для компилятора microsoft C/C++, знак источника и выполнения - наборы обоих ASCII.

Базовый символ источника - набор состоит из 96 символов: пробел; управляющие символы, представляющие горизонтальную tab вертикальную tab, преобразование формата и перевода строки. следующие 91 и знак:

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

_} {# ([]) <>%: ?;. *+-/^&|~! = " \" '

Базовый символ выполнения - установка состоит из знаков в базовом наборе символов источника, а также управляющих символов, представляющих предупреждение, возврат, возврат каретки и null.

ЭЛЕМЕНТ, относящийся Майкрософт

3 Типа констант символов:

  • Обычные символьные константы

  • Константы Multicharacter

  • Константы расширенных символов

ПримечаниеПримечание

Используйте константы расширенных символов вместо констант multicharacter для обеспечения переносимости.

Символьные константы определены как один или несколько знаков, заключенные в одиночные кавычки.Примеры.

char ch = 'x';          // Specify normal character constant.
int mbch = 'ab';        // Specify system-dependent
                        //  multicharacter constant.
wchar_t wcch = L'ab';   // Specify wide-character constant.

Обратите внимание, что mbch type int.Если был объявлен как тип charвторой байт, не будет сохранять.Константа multicharacter содержательных содержит 4 символов; определение более 4 формирует сообщение об ошибке.

Символы внутри символьной константы могут быть любыми графическим символами в символе источника - установка, за исключением новой строки, обратной косой черты " \ ", одинарной кавычки и двойной кавычки " или они могут быть заданы с помощью escape-последовательности.3 Типа escape-последовательности: просто, восьмиштырьково и шестнадцатеричную escape-последовательность.

Простые escape-последовательности могут быть любой из следующих объектов:

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

Восьмеричная escape-последовательности обратная косая черта восьмиштырьковых за последовательностью до 3 цифр.

Шестнадцатеричную escape-последовательность обратная косая черта, за которым следует знак x, выполните последовательность шестнадцатеричных цифр.

Microsoft C++ поддерживает обычный, multicharacter и константы расширенных символов.Используйте константы расширенных символов для определения элементов символа - установка расширенного выполнения (например, для поддержки international приложение).Обычные символьные константы имеют тип charконстанты имеют тип multicharacter intи константы расширенных символов имеют тип wchar_t.(Тип wchar_t в стандарте включаемые файлы STDDEF.H, STDLIB.H и STRING.H.Расширенный символ работает, однако prototyped только в STDLIB.H.)

Единственное различие в спецификации между обычным и константами расширенных символов юникода предшествуются буквы, что константы L.Примеры.

char schar = 'x';               // Normal character constant
wchar_t wchar = L'\x8119';    // Wide-character constant

В следующей таблице показаны зарезервированные символы или nongraphic, зависит от системы или не разрешено внутри констант знака.Эти символы должны быть представлены с помощью escape-последовательности.

Зарезервированное C++ или символы Nongraphic

Знак

ASCII

Представление

ASCII

Значение

Escape-последовательности

Новая строка

NL (LF)

10 или 0x0a

\n

Горизонтальная табуляция

HT

9

\t

Вертикальная табуляция

VT

11 или 0x0b

\v

Backspace

BS

8

\b

Возврат каретки

CR

13 или 0x0d

\r

Преобразование формата

FF

12 или 0x0c

\f

ALERT

БЕЛ

7

\a

Обратная косая черта

\

92 или 0x5c

\\

Вопросительный знак

?

63 или 0x3f

\?

Одиночные кавычки

'

39 или 0x27

\'

Двойные кавычки

"

34 или 0x22

\"

Номер восьмиштырьковый

ooo

\ooo

Шестнадцатеричное число

hhh

\ xhhh

Нуль-символ

NUL

0

\0

Если символ после обратной косой черты не определяет юридическое escape-последовательность, то результат конкретной реализации.В microsoft C++, символ после обратной косой черты принят буквально, как если бы избежать не присутствовало, и выдается предупреждение уровня 1 ("нераспознанное escape-последовательность").

Восьмеричная escape-последовательности, указанные в форме \ooo, состоьте из обратной косой черты, а другая, 2 или 3 восьмиштырьковых символов.Шестнадцатеричную escape-последовательность, указанные в форме \ xhhh, состоьте из символов \x выполните последовательность шестнадцатеричных цифр.В отличие от escape-последовательности являются константы, отсутствует ограничение количества шестнадцатеричных цифр в escape-последовательность.

Восьмеричная escape-последовательность завершенны первым символом, который не является восьмиштырькового числа или 3 символа видны.Примеры.

wchar_t och = L'\076a';  // Sequence terminates at a
char    ch = '\233';     // Sequence terminates after 3 characters

Аналогично, шестнадцатеричную escape-последовательность завершены с первого символа, который не является шестнадцатеричного числа.Так как шестнадцатеричные цифры в том числе буквы a via f (и A via Fescape-последовательности заканчивается), убедитесь в том, что на нужном позиции.

Происходит потому, что одиночная кавычка ('содержит символьные константы), используйте escape-последовательность \' представления, заключенные одинарные кавычки.Прямая кавычка ("") может быть представлен без escape-последовательности.Знак обратной косой черты (\), знак линия-продолжения помещенный в конце линии.Если требуется знак обратной косой черты появляться внутри символьной константы, обратные косые черты типа (в строке 2\\).(См. Этапы преобразования в ссылка препроцессора дополнительные сведения о продолжении линий.)

См. также

Ссылки

Литералы C++