การเขียนโปรแกรม D - ตัวอักษร
อักขระเป็นส่วนประกอบของสตริง สัญลักษณ์ของระบบการเขียนใด ๆ เรียกว่าอักขระ: ตัวอักษรของตัวอักษรตัวเลขเครื่องหมายวรรคตอนอักขระเว้นวรรค ฯลฯ สร้างความสับสนให้กับตัวอักษรเช่นกัน
ค่าจำนวนเต็มของตัวพิมพ์เล็ก a คือ 97 และค่าจำนวนเต็มของตัวเลข 1 คือ 49 ค่าเหล่านี้ได้รับการกำหนดโดยแบบแผนเท่านั้นเมื่อตาราง ASCII ได้รับการออกแบบ
ตารางต่อไปนี้กล่าวถึงประเภทอักขระมาตรฐานพร้อมขนาดและวัตถุประสงค์ในการจัดเก็บ
อักขระจะแสดงด้วยประเภทถ่านซึ่งสามารถเก็บค่าที่แตกต่างกันได้เพียง 256 ค่า หากคุณคุ้นเคยกับประเภทถ่านจากภาษาอื่นคุณอาจทราบแล้วว่ามันไม่ใหญ่พอที่จะรองรับสัญลักษณ์ของระบบการเขียนจำนวนมาก
ประเภท | ขนาดการจัดเก็บ | วัตถุประสงค์ |
---|---|---|
ถ่าน | 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: ğ