Programmation D - Caractères

Les caractères sont les éléments constitutifs des chaînes. Tout symbole d'un système d'écriture est appelé un caractère: les lettres de l'alphabet, les chiffres, les signes de ponctuation, le caractère d'espacement, etc.

La valeur entière de la minuscule a est 97 et la valeur entière du chiffre 1 est 49. Ces valeurs ont été attribuées simplement par des conventions lorsque la table ASCII a été conçue.

Le tableau suivant mentionne les types de caractères standard avec leurs tailles de stockage et leurs objectifs.

Les caractères sont représentés par le type char, qui ne peut contenir que 256 valeurs distinctes. Si vous connaissez le type char d'autres langues, vous savez peut-être déjà qu'il n'est pas assez grand pour prendre en charge les symboles de nombreux systèmes d'écriture.

Type Taille de stockage Objectif
carboniser 1 octet Unité de code UTF-8
wchar 2 octets Unité de code UTF-16
dchar 4 octets Unité de code UTF-32 et point de code Unicode

Certaines fonctions de caractères utiles sont répertoriées ci-dessous -

  • isLower - Détermine si un caractère minuscule?

  • isUpper - Détermine si un caractère majuscule?

  • isAlpha - Détermine si un caractère alphanumérique Unicode (généralement, une lettre ou un chiffre)?

  • isWhite - Détermine si un caractère d'espacement?

  • toLower - Il produit la minuscule du caractère donné.

  • toUpper - Il produit les majuscules du caractère donné.

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('ı')); 
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Lire les caractères en D

Nous pouvons lire les caractères en utilisant readf comme indiqué ci-dessous.

readf(" %s", &letter);

Puisque la programmation D prend en charge unicode, pour lire les caractères Unicode, nous devons lire deux fois et écrire deux fois pour obtenir le résultat attendu. Cela ne fonctionne pas sur le compilateur en ligne. L'exemple est présenté ci-dessous.

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); 
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Please enter a letter: ğ 
The letter that has been read: ğ