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: ğ