Lập trình D - Ký tự
Các ký tự là khối xây dựng của chuỗi. Bất kỳ ký hiệu nào của hệ thống chữ viết đều được gọi là ký tự: các chữ cái trong bảng chữ cái, chữ số, dấu câu, ký tự khoảng trắng, v.v. Thật khó hiểu, bản thân các khối xây dựng của ký tự cũng được gọi là ký tự.
Giá trị nguyên của chữ thường a là 97 và giá trị nguyên của chữ số 1 là 49. Các giá trị này chỉ được gán theo quy ước khi bảng ASCII đã được thiết kế.
Bảng sau đây đề cập đến các kiểu ký tự tiêu chuẩn với kích thước và mục đích lưu trữ của chúng.
Các ký tự được đại diện bởi kiểu char, chỉ có thể chứa 256 giá trị riêng biệt. Nếu bạn đã quen với kiểu ký tự từ các ngôn ngữ khác, bạn có thể đã biết rằng nó không đủ lớn để hỗ trợ các ký hiệu của nhiều hệ thống chữ viết.
Kiểu | Kích thước lưu trữ | Mục đích |
---|---|---|
char | 1 byte | Đơn vị mã UTF-8 |
wchar | 2 byte | Đơn vị mã UTF-16 |
dchar | 4 byte | Đơn vị mã UTF-32 và điểm mã Unicode |
Một số hàm ký tự hữu ích được liệt kê bên dưới:
isLower - Xác định nếu một ký tự thường?
isUpper - Xác định nếu một ký tự hoa?
isAlpha - Xác định xem một ký tự chữ và số Unicode (thường là một chữ cái hay một chữ số)?
isWhite - Xác định nếu một ký tự khoảng trắng?
toLower - Nó tạo ra chữ thường của ký tự đã cho.
toUpper - Nó tạo ra chữ hoa của ký tự đã cho.
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('ı'));
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
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
Đọc ký tự trong D
Chúng ta có thể đọc các ký tự bằng readf như hình dưới đây.
readf(" %s", &letter);
Vì lập trình D hỗ trợ unicode nên để đọc các ký tự unicode, chúng ta cần đọc hai lần và ghi hai lần để có kết quả như mong đợi. Điều này không hoạt động trên trình biên dịch trực tuyến. Ví dụ được hiển thị bên dưới.
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);
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Please enter a letter: ğ
The letter that has been read: ğ