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