D 语言 - 字符
字符是字符串的组成部分。 书写系统的任何符号都称为字符:字母、数字、标点符号、空格字符等。令人困惑的是,字符本身的组成部分也称为字符。
小写字母a的整数值为97,数字1的整数值为49。这些值只是在设计ASCII表时按照约定分配的。
下表提到了标准字符类型及其存储大小和用途。
字符由 char 类型表示,该类型只能容纳 256 个不同的值。 如果您熟悉其他语言的 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: ğ

