字元是字串的基石。文字系統的任何符號稱為字元:字母,數位,標點符號,空格字元等字母令人困惑的是,字元本身的基石也被稱為字元。
小寫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 ? 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(' ')); 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
我們可以用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: ?