Programowanie D - Znaki

Znaki są budulcem strun. Każdy symbol systemu pisma nazywany jest znakiem: litery alfabetu, cyfry, znaki interpunkcyjne, spacja itp. Myląco, same elementy składowe znaków nazywane są również znakami.

Wartość całkowita małej litery a wynosi 97, a wartość całkowita cyfry 1 to 49. Wartości te zostały przypisane jedynie przez konwencje podczas projektowania tabeli ASCII.

W poniższej tabeli wymieniono standardowe typy znaków, ich rozmiary i przeznaczenie.

Znaki są reprezentowane przez typ char, który może zawierać tylko 256 różnych wartości. Jeśli znasz typ char z innych języków, być może już wiesz, że nie jest on wystarczająco duży, aby obsługiwać symbole wielu systemów pisma.

Rodzaj Rozmiar pamięci Cel, powód
zwęglać 1 bajt Jednostka kodu UTF-8
wchar 2 bajty Jednostka kodu UTF-16
dchar 4 bajty Jednostka kodu UTF-32 i punkt kodowy Unicode

Niektóre przydatne funkcje znaków są wymienione poniżej -

  • isLower - Określa, czy jest to mała litera?

  • isUpper - Określa, czy jest to duża litera?

  • isAlpha - Określa, czy znak alfanumeryczny Unicode (zazwyczaj jest to litera lub cyfra)?

  • isWhite - Określa, czy jest to biały znak?

  • toLower - Tworzy małe litery podanego znaku.

  • toUpper - Tworzy wielką literę podanego znaku.

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

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

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

Czytanie znaków w D.

Możemy czytać znaki za pomocą readf, jak pokazano poniżej.

readf(" %s", &letter);

Ponieważ programowanie D obsługuje Unicode, aby odczytać znaki Unicode, musimy przeczytać dwa razy i dwa razy napisać, aby uzyskać oczekiwany wynik. To nie działa w kompilatorze online. Przykład pokazano poniżej.

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

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

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