Programmazione D - Caratteri

I personaggi sono gli elementi costitutivi delle stringhe. Qualsiasi simbolo di un sistema di scrittura è chiamato carattere: lettere di alfabeti, numeri, segni di punteggiatura, il carattere spazio, ecc. In modo confuso, anche gli elementi costitutivi dei caratteri stessi sono chiamati caratteri.

Il valore intero delle lettere minuscole a è 97 e il valore intero del numero 1 è 49. Questi valori sono stati assegnati semplicemente da convenzioni quando la tabella ASCII è stata progettata.

La tabella seguente menziona i tipi di caratteri standard con le loro dimensioni di archiviazione e scopi.

I caratteri sono rappresentati dal tipo char, che può contenere solo 256 valori distinti. Se hai familiarità con il tipo di carattere di altre lingue, potresti già sapere che non è abbastanza grande da supportare i simboli di molti sistemi di scrittura.

genere Dimensioni di archiviazione Scopo
char 1 byte Unità di codice UTF-8
wchar 2 byte Unità di codice UTF-16
dchar 4 byte Unità di codice UTF-32 e punto di codice Unicode

Di seguito sono elencate alcune utili funzioni dei caratteri:

  • isLower - Determina se un carattere minuscolo?

  • isUpper - Determina se un carattere maiuscolo?

  • isAlpha - Determina se un carattere alfanumerico Unicode (generalmente, una lettera o un numero)?

  • isWhite - Determina se un carattere di spazio bianco?

  • toLower - Produce la minuscola del carattere dato.

  • toUpper - Produce le maiuscole del carattere dato.

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

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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

Lettura di caratteri in D

Possiamo leggere i caratteri usando readf come mostrato di seguito.

readf(" %s", &letter);

Poiché la programmazione D supporta Unicode, per leggere i caratteri Unicode, è necessario leggere due volte e scrivere due volte per ottenere il risultato atteso. Questo non funziona sul compilatore in linea. L'esempio è mostrato di seguito.

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

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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