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