intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Chương 3.4 - Trường Đại học Ngoại ngữ - Tin học TP.HCM

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:58

18
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Kỹ thuật lập trình: Chương 3.4 cung cấp cho người đọc những kiến thức như: Kỹ thuật xử lý chuỗi; phép toán trên ký tự; phép toán trên chuỗi; bài toán đếm loại ký tự;...Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 3.4 - Trường Đại học Ngoại ngữ - Tin học TP.HCM

  1. KỸ THUẬT LẬP TRÌNH CƠ BẢN Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học TP.HCM (HUFLIT)
  2. KỸ THUẬT XỬ LÝ CHUỖI
  3. Biểu diễn ký tự • Character (ký tự): là một đơn vị thông tin thường tương ứng với một ký hiệu đồ họa (symbol) • Ký tự đồ họa (ký tự in ra được ) • Leters: 𝑎, 𝑏, 𝑐, … • Numbers: 0, 1, 2, … Không có symbol • Dấu câu, khoảng trắng (space) • Ký tự điều khiển (control character): tab, carriage return, … • Biểu diễn ký tự (character representation) trên máy tính • Mỗi ký tự được biểu diễn bằng một con số (code) (quá trình này gọi là mã hóa ký tự - character encoding) 3
  4. Biểu diễn ký tự • Character encoding • ASCII • Unicode •… • ASCII • Chuẩn character encoding đầu tiên (1963) • Dùng cho tiếng Anh • Dùng 7 𝑏𝑖𝑡𝑠, biểu diễn cho 128 ký tự (1 bit để kiểm tra lỗi) 4
  5. Biểu diễn ký tự - Ký tự điều khiển Hệ 2 Hệ 10 Hệ 16 Biểu diễn Truy nhập Tên/Ý nghĩa Tên/Ý nghĩa Viết tắt (Nhị phân) (Thập phân) (Thập lục phân) in được bàn phím tiếng Anh tiếng Việt 000 0000 0 00 NUL ␀ ^@ Null character Ký tự rỗng 000 0001 1 01 SOH ␁ ^A Start of Header Bắt đầu Header 000 0010 2 02 STX ␂ ^B Start of Text Bắt đầu văn bản 000 0011 3 03 ETX ␃ ^C End of Text Kết thúc văn bản 000 0100 4 04 EOT ␄ ^D End of Transmission Kết thúc truyền 000 0101 5 05 ENQ ␅ ^E Enquiry Truy vấn 000 0110 6 06 ACK ␆ ^F Acknowledgement Sự công nhận 000 0111 7 07 BEL ␇ ^G Bell Tiếng kêu 000 1000 8 08 BS ␈ ^H Backspace Xoá ngược 000 1001 9 09 HT ␉ ^I Horizontal Tab Thẻ ngang 000 1010 10 0A LF ␊ ^J New Line, Line Feed Dòng mới 000 1011 11 0B VT ␋ ^K Vertical Tab Thẻ dọc 000 1100 12 0C FF ␌ ^L Form feed Cấp giấy 000 1101 13 0D CR ␍ ^M Carriage return Chuyển dòng/ Xuống dòng 000 1110 14 0E SO ␎ ^N Shift Out Ngoài mã 000 1111 15 0F SI ␏ ^O Shift In Mã hóa/Trong mã 001 0000 16 10 DLE ␐ ^P Data Link Escape Thoát liên kết dữ liệu 001 0001 17 11 DC1 ␑ ^Q Device Control 1 — oft. XON 001 0010 18 12 DC2 ␒ ^R Device Control 2 001 0011 19 13 DC3 ␓ ^S Device Control 3 — oft. XOFF 001 0100 20 14 DC4 ␔ ^T Device Control 4 001 0101 21 15 NAK ␕ ^U Negative Acknowledgement 001 0110 22 16 SYN ␖ ^V Synchronous Idle 001 0111 23 17 ETB ␗ ^W End of Trans. Block 001 1000 24 18 CAN ␘ ^X Cancel 001 1001 25 19 EM ␙ ^Y End of Medium 001 1010 26 1A SUB ␚ ^Z Substitute 001 1011 27 1B ESC ␛ ^[ hay ESC Escape 001 1100 28 1C FS ␜ ^\ File Separator 001 1101 29 1D GS ␝ ^] Group Separator Nhóm Separator 001 1110 30 1E RS ␞ ^^ Record Separator 001 1111 31 1F US ␟ ^_ Unit Separator 111 1111 127 7F DEL ␡ DEL Delete Xóa 5
  6. Biểu diễn ký tự - Ký tự hiển thị được Hệ 2 Hệ 10 Hệ 16 Đồ hoạ (Nhị phân) (Thập phân) (Thập lục phân) (Hiển thị ra được) 010 0000 32 20 Khoảng trống (␠) 010 0001 33 21 ! 010 0010 34 22 " 010 0011 35 23 # 010 0100 36 24 $ 010 0101 37 25 % 010 0110 38 26 & 010 0111 39 27 ' 010 1000 40 28 ( 010 1001 41 29 ) 010 1010 42 2A * 010 1011 43 2B + 010 1100 44 2C , 010 1101 45 2D - 010 1110 46 2E . 010 1111 47 2F / 6
  7. Biểu diễn ký tự - Ký tự hiển thị được Hệ 2 Hệ 10 Hệ 16 Đồ hoạ (Nhị phân) (Thập phân) (Thập lục phân) (Hiển thị ra được) 011 0000 48 30 0 011 0001 49 31 1 011 0010 50 32 2 011 0011 51 33 3 011 0100 52 34 4 011 0101 53 35 5 011 0110 54 36 6 011 0111 55 37 7 011 1000 56 38 8 011 1001 57 39 9 011 1010 58 3A : 011 1011 59 3B ; 011 1100 60 3C < 011 1101 61 3D = 011 1110 62 3E > 011 1111 63 3F ? 100 0000 64 40 @ 7
  8. Biểu diễn ký tự - Ký tự hiển thị được Hệ 2 Hệ 10 Hệ 16 Đồ hoạ (Nhị phân) (Thập phân) (Thập lục phân) (Hiển thị ra được) 100 0001 65 41 A 100 0010 66 42 B 100 0011 67 43 C 100 0100 68 44 D 100 0101 69 45 E 100 0110 70 46 F 100 0111 71 47 G 100 1000 72 48 H 100 1001 73 49 I 100 1010 74 4A J 100 1011 75 4B K 100 1100 76 4C L 100 1101 77 4D M 100 1110 78 4E N 100 1111 79 4F O 101 0000 80 50 P 101 0001 81 51 Q 101 0010 82 52 R 101 0011 83 53 S 101 0100 84 54 T 101 0101 85 55 U 101 0110 86 56 V 101 0111 87 57 W 101 1000 88 58 X 101 1001 89 59 Y 101 1010 90 5A Z 101 1011 91 5B [ 101 1100 92 5C \ 101 1101 93 5D ] 101 1110 94 5E ^ 101 1111 95 5F _ 110 0000 96 60 ` 8
  9. Biểu diễn ký tự - Ký tự hiển thị được Hệ 2 Hệ 10 Hệ 16 Đồ hoạ (Nhị phân) (Thập phân) (Thập lục phân) (Hiển thị ra được) 110 0001 97 61 a 110 0010 98 62 b 110 0011 99 63 c 110 0100 100 64 d 110 0101 101 65 e 110 0110 102 66 f 110 0111 103 67 g 110 1000 104 68 h 110 1001 105 69 i 110 1010 106 6A j 110 1011 107 6B k 110 1100 108 6C l 110 1101 109 6D m 110 1110 110 6E n 110 1111 111 6F o 111 0000 112 70 p 111 0001 113 71 q 111 0010 114 72 r 111 0011 115 73 s 111 0100 116 74 t 111 0101 117 75 u 111 0110 118 76 v 111 0111 119 77 w 111 1000 120 78 x 111 1001 121 79 y 111 1010 122 7A z 111 1011 123 7B { 111 1100 124 7C | 111 1101 125 7D } 111 1110 126 7E ~ 9
  10. Biểu diễn ký tự • Unicode • Chuẩn quốc tế (1991) • Dùng cho mọi ngôn ngữ • UTF-8 encoding • 1 byte cho 128 ký tự đầu tiên theo định danh theo ASCII • Dùng 2 đến 4 byte cho các ký tự khác • UTF-16 encoding: dùng 2 đến 4 bytes để biểu diễn ký tự • UTF-32 encoding: dùng 4 bytes cho mọi ký tự • Ngôn ngữ C# hỗ trợ mặc định UTF-16 encoding 10
  11. Biểu diễn ký tự Unicode Đồ họa Hệ 16 Hệ 10 code point U+0030 0 30 48 U+0031 1 31 49 U+0032 2 32 50 U+0033 3 33 51 U+0034 4 34 52 U+0035 5 35 53 U+0036 6 36 54 U+0037 7 37 55 U+0038 8 38 56 U+0039 9 39 57 11
  12. Biểu diễn ký tự Unicode Unicode Đồ họa Hệ 16 Hệ 10 Đồ họa Hệ 16 Hệ 10 code point code point U+0041 A 41 65 U+004E N 4e 78 U+0042 B 42 66 U+004F O 4f 79 U+0043 C 43 67 U+0050 P 50 80 U+0044 D 44 68 U+0051 Q 51 81 U+0045 E 45 69 U+0052 R 52 82 U+0046 F 46 70 U+0053 S 53 83 U+0047 G 47 71 U+0054 T 54 84 U+0048 H 48 72 U+0055 U 55 85 U+0049 I 49 73 U+0056 V 56 86 U+004A J 4a 74 U+0057 W 57 87 U+004B K 4b 75 U+0058 X 58 88 U+004C L 4c 76 U+0059 Y 59 89 U+004D M 4d 77 U+005A Z 5a 90 12
  13. Biểu diễn ký tự Unicode Unicode Đồ họa Hệ 16 Hệ 10 Đồ họa Hệ 16 Hệ 10 code point code point U+0061 a 61 97 U+006E n 6e 110 U+0062 b 62 98 U+006F o 6f 111 U+0063 c 63 99 U+0070 p 70 112 U+0064 d 64 100 U+0071 q 71 113 U+0065 e 65 101 U+0072 r 72 114 U+0066 f 66 102 U+0073 s 73 115 U+0067 g 67 103 U+0074 t 74 116 U+0068 h 68 104 U+0075 u 75 117 U+0069 i 69 105 U+0076 v 76 118 U+006A j 6a 106 U+0077 w 77 119 U+006B k 6b 107 U+0078 x 78 120 U+006C l 6c 108 U+0079 y 79 121 U+006D m 6d 109 U+007A z 7a 122 13
  14. Biểu diễn ký tự trong C# • Trong C#, biểu diễn ký tự theo Unicode char nameVariable; Type Range Size char U+0000 to U+FFFF Unicode 16-bit character 0 → 65.536 • Hằng ký tự nameVariable = 'a'; • '1', '2', 'a', 'b', … nameVariable = '\u0061'; • Unicode: '\u0061' • Hexadecimal code: '\x61' nameVariable = '\x61'; • Decimal code: (char)97 nameVariable = (char)97; 14
  15. Phép toán trên ký tự • Lấy code của ký tự char value='a'; int code = (int)value; • Lặp qua các ký tự thường (từ a đến z) for (char i='a'; i
  16. Phép toán trên ký tự • Chuyển ký tự số thành số '0' → 0 '1' → 1 '2' → 2 ... '9' → 9 • Phân tích • Mỗi ký tự đều có 1 code. Code của các ký tự số '0' → 48 '1' → 49 '2' → 50 ... '9' → 57 • Vậy chúng ta có thể chuyển đổi theo công thức char c='...'; char c='...'; char c='...'; int num = (int)c-48; int num = c-48; int num = c-'0'; 16
  17. Phép toán trên ký tự • Xuất chữ tiếng Việt lên màn hình Console Console.OutputEncoding = Encoding.Unicode; Console.WriteLine("Khoa Công nghệ thông tin"); 17
  18. Vận dụng • Bài tập 1. Viết chương trình chuyển số 0…9 sang ký tự '0' … '9' • Bài tập 2. Viết chương trình in bảng có 2 cột • Cột "Code": code từ 48 đến 122 • Cột "Symbol": ký tự tương ứng với code 18
  19. Vận dụng • Bài tập 3. Viết chương trình tìm tất cả mã Unicode của các ký tự tiếng Việt 19
  20. Phép toán trên ký tự • Kiểm tra các loại ký tự cơ bản Method Mô tả char.IsDigit(value) Kiểm tra value là số thập phân: - 0, 1, …, 9 - '๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙' char.IsLetter(value) a…z, A…Z α, β, … char.IsLetterOrDigit(value) char.IsNumber(value) Kiểm tra value là số: - Số thập phân - '¼', '½', '¾', '²', '³', số la mã, … char.IsLower(value) Chữ thường char.IsUpper(value) Chữ Hoa char.IsPunctuation(value) Dấu chấm câu:, . ; … 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2