Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Использование символов: тип charТип данных char применяется для хранения символов, таких как буквы и знаки препинания, однако формально он также является целочисленным. Почему? Причина в том, что тип char в действительности хранит целые числа, а не символы. Для поддержки символов компьютер использует числовой код, в котором определенные целые числа представляют определенные символы. В США наиболее часто применяется код ASCII, и он как раз принят в настоящей книге. К примеру, целое значение 65 в нем представляет прописную букву А. Таким образом, чтобы сохранить букву А, фактически нужно записать целое число 65. Стандартный код ASCII состоит из последовательности чисел от 0 до 127. Этот диапазон достаточно мал, чтобы для значения хватило 7 битов. Тип char обычно определяется как 8-битная единица памяти, поэтому ее более чем достаточно, чтобы уместить стандартный код ASCII. Многие наборы символов содержат более 127 или даже 255 значений. Например, существует набор символов Japanese kanji для японских иероглифов. В рамках коммерческой инициативы Unicode был создана система для представления широкого разнообразия наборов символов, применяемых в различных частях мира, которая в настоящее время содержит более 110 ООО символов. Организация ISO и комиссия IF.C (International Electrotechnical Commission — Международная электротехническая комиссия) вместе разработали для наборов символов стандарт, получивший название ISO/IF.C 10646. К счастью, стандарт Unicode сохранил совместимость с более широким стандартом ISO/IF.C 10646. Язык С определяет байт как несколько битов, используемых типом char, поэтому может быть система с 16- или 32-битным байтом и типом char. Объявление переменных типа char Как и можно было ожидать, переменные типа char объявляются в такой же манере, что и другие переменные. Вот несколько примеров: char response; char itable, latan; В этом коде создаются три переменных типа char: response, itable и latan. Символьные константы и инициализация Предположим, что вы хотите инициализировать символьную константу буквой А. Компьютерные языки призваны облегчить решение этой задачи, так что вам не придется запоминать все коды ASCII. Вы можете присвоить символ А переменной grade с помощью следующей инициализации: char grade = 'А'; Одиночный символ, заключенный в одиночные кавычки, представляет собой символьную константу в С. Когда компилятор встречает конструкцию ' А', он преобразует ее в подходящее кодовое значение. Одиночные кавычки здесь очень важны. Рассмотрим еще один пример: char broiled; /* объявление переменной типа char */ broiled = "Г'; /* правильно */ broiled = Т; /*Неправильно! Компилятор считает, что Т является переменной */ broiled = "т"; /* Неправильно! Компилятор считает, что "Т" является строкой */ Если опустить кавычки, то компилятор посчитает, что Т является именем переменной. Если применить двойные кавычки, он воспримет "Т" как строку. Поскольку символы в действительности хранятся в виде числовых значений, для присваивания значений можно также указывать числовые коды: char grade = 65; /* правильно в контексте ASCII, но стиль неудачен */ В данном примере 65 имеет тип int, но поскольку это значение меньше максимального значения типа char, оно может быть присвоено переменной grade без каких-либо проблем. Так как 65 представляет собой ASCII-код буквы А, в этом примере переменной grade присваивается значение А. Тем не менее, обратите внимание, что в примере предполагается использование в системе кодировки ASCII. Указание 'А' вместо 6 5 дает в результате код, который работает в любой системе. Таким образом, применять символьные константы намного лучше, чем значения числовых кодов.
Непечатаемые символы Прием с одиночными кавычками хорош для символов, цифр и знаков препинания, однако если просмотреть таблицу кодов ASCII, в ней можно обнаружить также непечатаемые символы. Например, некоторые из них представляют собой такие действия, как возврат на одну позицию влево, переход на следующую строку или выдачу звукового сигнала терминалом либо встроенным динамиком. Как их можно представить? В языке С предлагаются три способа. Первый способ уже упоминался — применение ASCII-кода. Например, ASCII-кодом для символа звукового сигнала является 7, так что можно использовать следующий оператор: char beep = 7; Второй способ представления необычных символов в языке С предусматривает применение специальных последовательностей символов, которые называются управляющими последовательностями. Список управляющих последовательностей и их описание приведено в табл. 3.2. Таблица 3.2. Управляющие последовательности
Управляющие последовательности, присваиваемые символьным переменным, должны быть заключены в одиночные кавычки. Например, можно записать такой оператор: char nerf = '\n'; а затем вывести переменную nerf, что обеспечит перемещение на следующую строку на принтере или на экране монитора. Управляющие последовательности \b, \f, \n, \r, \t и \v представляют собой обычные символы управления выходным устройством. Их проще всего описывать в терминах того, как они влияют на активную позицию. Символ возврата на одну позицию влево (\b) перемещает активную позицию назад на один символ текущей строки. Символ перевода страницы (\f) переносит активную позицию в начало следующей страницы. Символ новой строки (\п) перемещает активную позицию в начало следующей строки. Символ возврата каретки (\r) переносит активную позицию в начало текущей строки. Символ горизонтальной табуляции (\t) перемещает активную позицию в следующую точку горизонтальной табуляции (обычно эти точки находятся в позициях 1,9, 17, 25 и т.д.). Символ вертикальной табуляции (\v) переносит активную позицию в следующую точку вертикальной табуляции. Следующие три управляющие последовательности (\\, \' и \") обеспечивают возможность использования символов \, ' и " в качестве символьных констант. (Поскольку эти символы служат для определения символьных констант как части команды printf (), буквальное их указание может вызвать путаницу.) Предположим, что вы хотите вывести следующую строку: Джо сказал: "символ \ является символом обратной косой черты." Необходимо использовать такой код: printf("Джо сказал: \"символ \\ является символом обратной косой черты.\"\n");
|