Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Символы






Символьный тип в языке C++ относится к целочисленным типам, однако запись символов имеет свои отличия.

Для работы с символами в языке C++ предусмотрены символьные типы (signed) char и unsigned char. Первый – это целое число со знаком, хранящееся в одном байте (его диапазон от -128 до 127), второй – беззнаковое однобайтовое число (его диапазон от 0 до 255). Эти типы чаще всего ис­пользуются для работы с символами, поскольку коды символов как раз помещаются в байт.

Существует несколько стандартов, опре­деляющих соответствие кодов символам. Для букв английского алфавита, цифр, знаков препинания и знаков операций используется стандарт ASCII, который определяет коды от 0 до 127. Для представления русских букв ис­пользуется стандарты, в которых русские буквы кодируются числами от 128 до 255 (или, соответственно, от -128 до -1). Таким образом, все символы могут быть представлены в одном байте (максимальное число символов, которое можно представить в одном байте – 255). Переменную символьного типа можно объявить так:

char с; // однобайтовое число со знаком

unsigned char u; // однобайтовое число без знака

Для записи символьных констант используются одиночные кавычки (апострофы). Примеры:

'S' '& ' '8' 'ф'

Числовым значением символьной константы является код соответствующего симво­ла, принятый в используемой операционной системе.

Поскольку, несмотря на двойственность своей природы, символы – это, прежде всего, целые числа, к ним применимы все операции, определенные для целых чисел. Поэтому вполне допустимо использование символов в выражениях:

'F' + 1

'а' < 23

а также присваивания им числовых значений:

char c = 45;

Символы, отображающие 26 больших (заглавных) букв английского алфавита от 'A' до 'Z' представлены последовательными возрастающими числовыми кодами, причем код символа 'B' больше кода символа 'A' на 1, а код символа 'Z' – на 25. Точно так же упорядочены коды символов, отображающих 26 малых (строчных) английских букв от 'a' до 'z', причем коды малых букв располагаются в таблице позже кодов больших букв. Разница между кодами одинаковых малых и больших букв ('a'-'A') составляет фиксированное значение 32, что в двоичной записи кодов означает наличие единицы в старшем, незнаковом разряде. Упорядочены также и коды символов, отображающих цифры от 0 до 9 (код символа '9' на 9 больше кода символа '0').

В кодировке ASCII два следующих оператора эквивалентны:

char с = 68; // 68 – код буквы D

char с = 'D';

Первый из них инициализирует символьную переменную c числовым значением 68. Второй присваивает этой переменной код латинской буквы D, который в кодировке ASCII равен 68.

Некоторые символы нельзя ввести в программу обычным способом. Это, например, символы, не представленные на клавиатуре или играющие особую роль в записи символов и строк. Для их обозначения используются специальные управляющие символьные константы, так называемые эскейп–последовательности, начинающиеся с обратной дробной черты. Эти последовательности стандартны и предопределены в языке. Вот некоторые из них:

\b возврат на один символ назад

\n новая строка

\r возврат каретки

\t горизонтальная табуляция

\' апостроф

\" двойные кавычки

\\ обратная дробная черта

Символьная константа может быть представлена и с использованием ее числового кода. Для этого ее восьмеричный или шестнадцатеричный (с префиксом 'x') числовой код записывается после обратной дробной черты:

const char zero = '\0'; // инициализация нуль-символом

const unsigned char bitmask = '\xFF';

cout < < 'A' < < (char)65 < < '\101' < < '\x41' < < endl; // вывод AAAA

Алфавит большинства европейских языков мо­жет быть представлен однобайтовыми числами (то есть кодами в диапазоне от 0 до 255). В большинстве кодировок принято, что первые 127 кодов отводятся для символов, входящих в набор ASCII: ряд специальных сим­волов, латинские заглавные и строчные буквы, арабские цифры и знаки препинания. Вторая половина кодов – от 128 до 255 отводится под буквы того или иного языка. Фактически вторая половина кодовой таблицы ин­терпретируется по-разному, в зависимости от того, какой язык считается " текущим". Один и тот же код в разных кодировках может соответствовать различным знакам или буквам.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.