Mã ký tự trong C (Character code) | Laptrinhcanban.com

Mã ký tự trong C (Character code)

Cùng tìm hiểu về mã ký tự trong C. Bạn sẽ học được khái niệm mã ký tự trong C là gì, cách lấy mã ascii của ký tự trong c cũng như cách chuyển từ mã ascii sang ký tự trong C sau bài học này.

Mã ký tự trong C là gì

Trong các bài trước chúng ta đã biết, C là một ngôn ngữ bậc cao và nội dung viết trong đó rất giống với cách viết và suy nghĩ của con người. Tuy nhiên thì trong máy tính chỉ có 2 trạng thái tồn tại đó là có dòng điện chạy quakhông có dòng điện chạy qua, tương ứng với 2 số 01 nên chúng ta cần phải biên dịch chương trình C cho máy tính hiểu được.

Một cách tương tự, đối với máy tính thì các chữ cái, dấu hoặc chữ số như a, 8, ! mà chúng ta sử dụng trong đời sống hàng ngày đều là ký tự không thể hiểu được. Để máy tính có thể hiểu chúng, con người đã xây dựng những bảng mã ký tự mà trong đó, mỗi ký tự của ngôn ngữ con người sẽ được gán cho một số thứ tự trong bảng mã, và máy tính thay vì đọc ký tự thì sẽ đọc thứ tự của ký tự đó trong bảng mã. Ví dụ như chữ a thì là thứ 1, chữ o thì là thứ 3 chẳng hạn. Và chúng ta gọi các số thứ tự trong bảng mã này theo cách thân mật là mã ký tự trong C.

Mã ký tự trong C là gì

Lại nữa, giống như có rất nhiều ngôn ngữ trong thế giới loài người thì trong máy tính cũng tồn tại rất nhiều bảng mã ký tự khác nhau, ví dụ như bảng mã ASCII, UTF-8 hay UTF-16 chẳng hạn. Và thứ tự các ký tự của ngôn ngữ loài người trong mỗi bảng mã ký tự này thì có thể khác nhau, dẫn đến cùng một ký tự nhưng mã ký tự của nó trong các bảng mã ký tự là hoàn toàn khác nhau.

Do đó, chúng ta cần phải chú ý xem bảng mã ký tự nào đang được sử dụng, khi dùng mã ký tự trong C nhé.

Lấy mã ascii của ký tự trong C

ASCII là bảng mã ký tự sử dụng các số thập phân từ 0 đến 127 để biểu diễn các ký tự trong bảng chữ cái Latin.
Tuy nhiên chúng ta cũng có thể biểu diễn các số thập phân này dưới nhiều dạng khác nhau, ví dụ như ở dạng bát phân, hoặc thập lục phân chẳng hạn.

Để lấy mã ascii của ký tự trong C, tuỳ vào định dạng thập phân, bát phân hay thập lục phân cần lấy mà chúng ta sử dụng hàm in printf với tham số %d (thập phân), %o (bát phân) hoặc %x (thập lục phân) như sau:

printf("%d\n", 'ký tự');
printf("%o\n", 'ký tự');
printf("%x\n", 'ký tự');

Ví dụ cụ thể, chúng ta lấy mã ascii của các ký tự ở dạng thập phân và in ra màn hình như sau:

#include <stdio.h>

int main(void){
printf("%d\n", 'a');
printf("%d\n", 'b');
printf("%d\n", 'c');
printf("%d\n", 'A');
printf("%d\n", 'B');
printf("%d\n", 'C');

return 0;
}
//97
//98
//99
//65
//66
//67

Hoặc là mã ascii của các ký tự ở dạng thập lục phân như sau:

#include <stdio.h>

int main(void){
printf("%x\n", 'a');
printf("%x\n", 'b');
printf("%x\n", 'c');
printf("%x\n", 'A');
printf("%x\n", 'B');
printf("%x\n", 'C');

return 0;
}
//61
//62
//63
//41
//42
//43

Chuyển từ mã ascii sang ký tự trong C

Ngược lại thì chúng ta cũng có thể chuyển từ mã ascii sang ký tự trong C cũng bằng hàm in printf ở trên với cú pháp sau đây:

printf("%c\n", '\xmã ký tự');

Trong đó printf là hàm xuất dữ liệu trong C, tham số %%c có ý nghĩa chỉ định dữ liệu cần in ra ở dạng ký tự, và chúng ta chỉ định mã ascii (dưới dạng thập lục phân) của ký tự cần chuyến vào đằng sau \x như trên.

Ví dụ cụ thể, chúng ta chuyển từ mã ascii sang ký tự và in ra màn hình như sau:

#include <stdio.h>

int main(void){
printf("%c\n", '\x61');
printf("%c\n", '\x62');
printf("%c\n", '\x63');
printf("%c\n", '\x41');
printf("%c\n", '\x42');
printf("%c\n", '\x43');

return 0;
}

Kết quả:

a
b
c
A
B
C

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về mã ký tự trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.