VirQ. Понятие типа char в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Символьные переменные /
Понятие типа char
Статей на сайте: 61

Понятие типа char


Под типом char подразумевают 1 символ. Любой символ: цифру, букву (лат./кир.), знак.
[code] char x = 'd'; //Обязательно через апострофы [/code]
Если записать в кавычках, то это воспринимается компьютером, как строка, хоть и символ всего 1.
[code] char x = "d"; //Ошибка [/code]
Каждый символ имеет свой порядковый номер в некой таблице под названием ASCII.
American Standard Code for Information Interchange — американский стандартный код для обмена информацией
На рисунке представлена только часть этой таблицы, которая не меняется никогда с времён появления данной кодировки.


Для того, чтобы получить порядковый номер заглавной латинской буквы "А", необходимо сделать приведение к любому числовому типу.
[code] char x = 'A'; byte b = (byte)x; //Здесь будет 65 для буквы 'A' char y = 'Z'; byte m = (byte)y; //Здесь будет 90 для буквы 'Z' [/code]
Можно и так:
[code] byte b = (byte)'A'; //Получите число 65 byte x = (byte)'B'; //Получите число 66 [/code]
Цифры тоже входят в эту таблицу. Например, цифра 9 в таблице имеет код 57
Так же получить один символ из строки можно следующим образом (например, нужен первый символ строки):
[code] string s = "Здесь произвольный текст"; char f = s[0]; //Получить первую букву строки. [/code]
Для получения символа из кода таблицы ASCII необходимо числовое значение привести к char-типу. Допустим, найдите по таблице код 47. Это символ "/".
[code] byte n = 47; char c = (char)n; [/code]
Можно и так:
[code] char c = (char)47; //Получите символ '/' [/code]
Интересно заметить, что char - универсальный тип и использовать его можно вместе с математикой. Например, надо определить, какая буква в алфавите находится через 4 буквы после буквы А
[code] char x = 'A'; char z = (char)(x + 4); //Ответ: Е [/code]
Необходимо заместить, что приведение к типу char должно быть применено ко всему выражению x + 4. Поэтому оно в скобках
[code] char z = (char)x + 4; //Ошибка [/code]
Ещё один пример. Показать предыдущую букву с конца алфавита прописных букв.
Последняя буква, это 'z'. Её код: 122.
[code] char ch = (char)('z' - 1); [/code]
Это сокращённая запись в 1 строку. Имя переменной ch может быть любым. Не обязательно 'ch'
Символы с 0-31 - это технические символы.
Например:
[code] Console.WriteLine((char)7); //Вместо печати символа вы услышите звук Console.WriteLine((char)10); //Вместо печати символа сработает перенос курсора на строку ниже [/code]
Символы с 128 по 255 - это расширенная таблица ASCII. Она различная для различных кодировок.
В следующем рисунке представлена основная (базовая) часть в левой верхней части.
А в остальных 3 различные типы кодировок


В данной таблице коды представлены в виде таблицы из 16-ричных значений (десятки по вертикали и единицы по горизонтали).
Для быстрого перевода из 16-ричной системы в 10-ную можно использовать обычный калькулятор вашей системы в режиме "Программист" (подробнее).
Для ввода таких символов на клавиатуре используется Alt и ввод символа.
Например, символ █ на клавиатуре набирается так:
1) Зажать Alt
2) Ввести 219
3) Отпустить Alt

Но с char не всё так просто. Этот тип использует не 8-битную таблицу кодов, а 16-битную.
Его минимальное значение - 0
Максимальное - 65535.
И, скажем, узнать код этого символа в консоли с помощью следующего кода не получится. Будет ошибка:
[code] byte b = (byte)'█'; [/code]
Данный символ выходит за тип byte и использовать нужно ushort (числа от 0 до 65535). Подробнее о целочисленных типах
Поэтому пишем так:
[code] ushort b = (ushort)'█'; //И в b попадёт значение 9608 Console.WriteLine(b); //При желании можно вывести это на экран [/code]
Соответственно, обратный вариант:
[code] char x = (char)9608; Console.WriteLine(x); [/code]
И на экране будет:
Console
×



Дополнительная информация о том, как вывести результат в консоли или WinForm