字符是字符串的基石。文字系統(tǒng)的任何符號稱為字符:字母,數(shù)字,標(biāo)點(diǎn)符號,空格字符等字母令人困惑的是,字符本身的基石也被稱為字符。
小寫a的整數(shù)值是97,數(shù)字1的整數(shù)值是49,這些數(shù)值已經(jīng)僅僅指派當(dāng)ASCII碼表的設(shè)計慣例。
下表提供了有關(guān)與存儲大小,其目的標(biāo)準(zhǔn)字符類型的詳細(xì)信息。
字符由char類型,它只能容納256個不同的值來表示。如果熟悉其他語言的字符類型,可能已經(jīng)知道這不是大到足以支持許多書寫系統(tǒng)的符號。
| 類型 | 存儲大小 | 目的 |
|---|---|---|
| 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 |
一些有用的字符函數(shù)列表如下
isLower:是小寫字符?
isUpper:是否為大寫字母?
isAlpha: 是一個Unicode字母數(shù)字字符(通常,一個字母或數(shù)字)?
isWhite:是一個空白字符?
toLower: 給定字符轉(zhuǎn)為小寫
toUpper: 給定字符轉(zhuǎn)為大寫
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('?')); }
當(dāng)我們運(yùn)行上面的程序,我們會得到下面的輸出
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字符,我們需要讀兩遍,寫兩次,得到預(yù)期的結(jié)果。例子如下所示。
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); }
當(dāng)我們運(yùn)行上面的程序,我們會得到下面的輸出
Please enter a letter: ? The letter that has been read: ?