字符是字符串的基石。文字系统的任何符号称为字符:字母,数字,标点符号,空格字符等字母令人困惑的是,字符本身的基石也被称为字符。
小写a的整数值是97,数字1的整数值是49,这些数值已经仅仅指派当ASCII码表的设计惯例。
下表提供了有关与存储大小,其目的标准字符类型的详细信息。
字符由char类型,它只能容纳256个不同的值来表示。如果熟悉其他语言的字符类型,可能已经知道这不是大到足以支持许多书写系统的符号。
类型 | 存储大小 | 目的 |
---|---|---|
char | 1 byte | UTF-8 code unit |
wchar | 2 bytes | UTF-16 code unit |
dchar | 4 bytes | UTF-32 code unit and Unicode code yiibai |
一些有用的字符函数列表如下
-
isLower:是小写字符?
-
isUpper:是否为大写字母?
-
isAlpha: 是一个Unicode字母数字字符(通常,一个字母或数字)?
-
isWhite:是一个空白字符?
-
toLower: 给定字符转为小写
-
toUpper: 给定字符转为大写
import std.stdio import std.uni void main() { writeln("Is %u11F lowercase? ", isLower(&apos%u11F&apos)) writeln("Is %u15E lowercase? ", isLower(&apos%u15E&apos)) writeln("Is %u130 uppercase? ", isUpper(&apos%u130&apos)) writeln("Is %uE7 uppercase? ", isUpper(&apos%uE7&apos)) writeln("Is z alphanumeric? ", isAlpha(&aposz&apos)) writeln("Is new-line whitespace? ", isWhite(&apos &apos)) writeln("Is underline whitespace? ", isWhite(&apos_&apos)) writeln("The lowercase of %u11E: ", toLower(&apos%u11E&apos)) writeln("The lowercase of %u130: ", toLower(&apos%u130&apos)) writeln("The uppercase of %u15F: ", toUpper(&apos%u15F&apos)) writeln("The uppercase of %u131: ", toUpper(&apos%u131&apos)) }
当我们运行上面的程序,我们会得到下面的输出
Is %u11F lowercase? true Is %u15E lowercase? false Is %u130 uppercase? true Is %uE7 uppercase? false Is z alphanumeric? true Is new-line whitespace? true Is underline whitespace? false The lowercase of %u11E: %u11F The lowercase of %u130: i The uppercase of %u15F: %u15E The uppercase of %u131: I
读取字符
我们可以用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: %u11F The letter that has been read: %u11F