D Программирование - Персонажи
Персонажи - это строительные блоки струн. Любой символ системы письма называется символом: буквы алфавита, цифры, знаки препинания, пробел и т. Д. Как ни странно, сами строительные блоки символов также называются символами.
Целочисленное значение строчной буквы a - 97, а целочисленное значение цифры 1 - 49. Эти значения были присвоены просто условно при разработке таблицы ASCII.
В следующей таблице перечислены стандартные типы символов с указанием размеров и целей их хранения.
Символы представлены типом char, который может содержать только 256 различных значений. Если вы знакомы с типом char из других языков, возможно, вы уже знаете, что он недостаточно велик, чтобы поддерживать символы многих систем письма.
Тип | Размер хранилища | Цель |
---|---|---|
char | 1 байт | Кодовый блок UTF-8 |
чар | 2 байта | Кодовый блок UTF-16 |
dchar | 4 байта | Кодовый блок UTF-32 и кодовая точка Unicode |
Некоторые полезные символьные функции перечислены ниже -
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 поддерживает юникод, для чтения символов Юникода нам нужно дважды прочитать и дважды написать, чтобы получить ожидаемый результат. Это не работает в онлайн-компиляторе. Пример показан ниже.
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);
}
Когда приведенный выше код компилируется и выполняется, он дает следующий результат:
Please enter a letter: ğ
The letter that has been read: ğ