Значением символьных данных (char, от английского character) может быть буква, цифра или другой символ клавиатуры. Для каждого элемента символьных данных программа отводит столько места, сколько необходимо для хранения единичного символа*, так что, если вы используете пять различных элементов символьных данных, ваш компьютер зарезервирует пять элементов памяти (рис.3.).
____________________
* Переменная типа char имеет размер, естественный для хранения символа на данной машине, обычно 1 байт (8 бит).
Рис. 3. Каждый элемент данных символьного типа занимает один элемент памяти
Набор употребляемых символов включает в себя латинские буквы, 26 прописных и 26 строчных:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i g k l m n o p q r s t u v w x y z
Например, если вы пишете тест, в котором испытуемый должен выбрать один из четырех вариантов ответа — А, Б, В или Г, —каждая буква будет являться отдельным элементом символьных данных.
К символьному типу относятся и специальные управляющие коды, для хранения которых Си отводит столько же памяти, сколько и для единичного символа.
Заметьте, что символьные данные могут быть представлены в виде цифр — 1, 2, 3, — однако Си проводит различия между символом «1» и числом 1. Как символ единица не может использоваться в математических операциях, поскольку она не рассматривается в этом случае как математическая величина. Как число единица участвует в вычислениях, при этом, как вы скоро увидите, для хранения символа «1» Си отводит объем памяти вполовину меньший, чем для хранения числа 1.
Строки
Строкой называют набор символов, слов, фраз или предложений. В отличие от некоторых других языков, в Си строка не выделяется в отдельный тип данных. Язык Си работает со строкой как с последовательностью данных символьного типа, используя так называемый массив. Строка может состоять из любой комбинации букв, цифр, знаков препинания и управляющих кодов, которые тоже могут использоваться в качестве символьных данных. Язык Си проводит различия между строкой цифр и числом. Строка «123» будет восприниматься не как математическое значение сто двадцать три, а как комбинация символов «1», «2», «3».
____________________
* Сюда же относятся и буквы русского алфавита: 33 прописных и 33 строчных.
Некоторые компиляторы Си и Си++ поддерживают специальный строковый тип данных и имеют библиотеки функций для работы со строками. Некоторые компиляторы могут иметь специальные функции для работы со строками, не выделяя их при этом в отдельный тип данных. Проверьте документацию вашего компилятора.