D 编程 - 字符



字符是字符串的基本组成单元。任何书写系统中的符号都被称为字符:字母表中的字母、数字、标点符号、空格字符等。令人困惑的是,字符本身的基本组成单元也被称为字符。

小写字母 a 的整数值为 97,数字 1 的整数值为 49。这些值仅仅是在设计 ASCII 表时通过约定分配的。

下表列出了标准字符类型及其存储大小和用途。

字符由 char 类型表示,它只能容纳 256 个不同的值。如果您熟悉其他语言中的 char 类型,您可能已经知道它不足以支持许多书写系统的符号。

类型 存储大小 用途
char 1 字节 UTF-8 代码单元
wchar 2 字节 UTF-16 代码单元
dchar 4 字节 UTF-32 代码单元和 Unicode 代码点

下面列出了一些有用的字符函数:

  • isLower - 判断是否为小写字符?

  • isUpper - 判断是否为大写字符?

  • isAlpha - 判断是否为 Unicode 字母数字字符(通常是字母或数字)?

  • isWhite - 判断是否为空格字符?

  • toLower - 将给定字符转换为小写。

  • toUpper - 将给定字符转换为大写。

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

编译并执行上述代码后,将产生以下结果:

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 

在 D 中读取字符

我们可以使用 `readf` 读取字符,如下所示。

readf(" %s", &letter);

由于 D 编程语言支持 Unicode,为了读取 Unicode 字符,我们需要读取两次并写入两次才能获得预期结果。这在在线编译器上不起作用。示例如下所示。

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

编译并执行上述代码后,将产生以下结果:

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