Символы
Третий основной тип данных — char (от character, «символ»). Он хранит один символ: букву, цифру, знак препинания или пробел. Символ записывают в одинарных кавычках, а выводят с помощью %c:
char size = 'M';
char row = 'F';
printf("Размер: %c\n", size);
printf("Место: %c%d\n", row, 12);Выведется:
Размер: M
Место: F12char удобен везде, где достаточно одного символа: размер футболки, ряд в кинотеатре, оценка буквой или ответ, 'y' или 'n'.
Следите за кавычками. В одинарных кавычках — один символ: 'M'. В двойных — текст, даже если в нём всего одна буква: "M". В C текст — это не то же самое, что символ, и работать с ним вы будете на уроке о строках. Если попытаться сохранить текст в char, программа не скомпилируется:
#include <stdio.h>
int main(void) {
char size = "M";
printf("Размер: %c\n", size);
return 0;
}Компилятор сообщает:
main.c:4:10: error: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char[2]' [-Wint-conversion]Сообщение выглядит страшно, но говорит лишь о том, что текст "M" нельзя сохранить в char. Один символ пишут в одинарных кавычках: 'M'.
Внутри компьютера каждый символ хранится как число — его код. У 'A' код 65, у 'B' — 66, и так по всему алфавиту. Даже цифра в кавычках — это символ со своим кодом: у '7' он 55, а не 7. Код можно увидеть, если вывести символ с помощью %d:
char letter = 'A';
printf("Код символа %c: %d\n", letter, letter);
printf("%c\n", letter + 1);Выведется:
Код символа A: 65
BОдно и то же значение выводится как символ с %c и как его код с %d. А letter + 1 — это 66, код символа B. Это пригодится при работе с текстом.
Теперь вы знаете три основных типа данных C: int, double и char. В C есть и другие, например для очень больших чисел, но на этом курсе они не нужны. На следующем уроке вы познакомитесь ещё с одним типом — для «истины» и «лжи».
Задание
- 1
Ниже создайте переменную
sizeтипаcharсо значением'M'. - 2
На следующей строке выведите её с помощью
%c:Размер: M - 3
Ниже выведите размер ещё раз — как символ и как его код. Используйте один
printfс%cи%dи передайтеsizeдважды:Код символа M: 77