Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Символы

Символьный тип в языке 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 отводится под буквы того или иного языка. Фактически вторая половина кодовой таблицы ин­терпретируется по-разному, в зависимости от того, какой язык считается "текущим". Один и тот же код в разных кодировках может соответствовать различным знакам или буквам.

<== предыдущая лекция | следующая лекция ==>
Логические значения | Вычисление значения выражения
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.