Символы являются строительными блоками строк. Любой символ системы письма называется символом: буквы алфавита, цифры, знаки пунктуации, символ пробела и т. Д. Смущает то, что строительные блоки самих символов также называются символами.
Целочисленное значение строчной буквы a равно 97, а целочисленное значение цифры 1 равно 49. Эти значения были назначены просто соглашениями, когда была разработана таблица ASCII.
В следующей таблице упоминаются стандартные типы символов с указанием их размеров и назначения.
Символы представлены типом char, который может содержать только 256 различных значений. Если вы знакомы с типом char из других языков, вы, возможно, уже знаете, что он недостаточно велик для поддержки символов многих систем письма.
Тип | Размер хранилища | Цель |
---|---|---|
голец | 1 байт | Кодовый блок UTF-8 |
WCHAR | 2 байта | Кодовый блок UTF-16 |
dchar | 4 байта | Кодовая единица UTF-32 и кодовая точка Unicode |
Некоторые полезные символьные функции перечислены ниже —
-
isLower — определяет, является ли символ нижнего регистра?
-
isUpper — Определяет, является ли символ в верхнем регистре?
-
isAlpha — Определяет, является ли буквенно-цифровой символ Unicode (как правило, буква или цифра)?
-
isWhite — определяет, является ли символ пробела?
-
toLower — производит нижний регистр данного символа.
-
toUpper — производит верхний регистр данного символа.
isLower — определяет, является ли символ нижнего регистра?
isUpper — Определяет, является ли символ в верхнем регистре?
isAlpha — Определяет, является ли буквенно-цифровой символ Unicode (как правило, буква или цифра)?
isWhite — определяет, является ли символ пробела?
toLower — производит нижний регистр данного символа.
toUpper — производит верхний регистр данного символа.
import std.stdio; import std.uni; void main() { writeln("Is ğ lowercase? ", isLower('ğ')); writeln("Is Ş lowercase? ", isLower('Ş')); writeln("Is İ uppercase? ", isUpper('İ')); writeln("Is ç uppercase? ", isUpper('ç')); writeln("Is z alphanumeric? ", isAlpha('z')); writeln("Is new-line whitespace? ", isWhite('\n')); writeln("Is underline whitespace? ", isWhite('_')); writeln("The lowercase of Ğ: ", toLower('Ğ')); writeln("The lowercase of İ: ", toLower('İ')); writeln("The uppercase of ş: ", toUpper('ş')); writeln("The uppercase of ı: ", toUpper('ı')); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Is ğ lowercase? true Is Ş lowercase? false Is İ uppercase? true Is ç uppercase? false Is z alphanumeric? true Is new-line whitespace? true Is underline whitespace? false The lowercase of Ğ: ğ The lowercase of İ: i The uppercase of ş: Ş The uppercase of ı: I
Чтение символов в D
Мы можем читать символы, используя readf, как показано ниже.
readf(" %s", &letter);
Поскольку D-программирование поддерживает Unicode, для чтения символов Unicode нам нужно читать дважды и писать дважды, чтобы получить ожидаемый результат. Это не работает на онлайн-компиляторе. Пример показан ниже.
import std.stdio; void main() { char firstCode; char secondCode; write("Please enter a letter: "); readf(" %s", &firstCode); readf(" %s", &secondCode); writeln("The letter that has been read: ", firstCode, secondCode); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —