Xem thêm

Bảng Mã ASCII Và Thư Viện ctype: Hiểu Bản Chất Kiểu Dữ Liệu Char Trong C++

Huy Erick
Hầu hết mọi người đã nghe về bảng mã ASCII, một kiến thức quan trọng để hiểu về kiểu dữ liệu char trong ngôn ngữ lập trình C++. Bài viết này sẽ giúp bạn hiểu...

Hầu hết mọi người đã nghe về bảng mã ASCII, một kiến thức quan trọng để hiểu về kiểu dữ liệu char trong ngôn ngữ lập trình C++. Bài viết này sẽ giúp bạn hiểu rõ về bảng mã ASCII và thư viện ctype để xử lý các kiểu ký tự trong quá trình lập trình.

1. Bảng Mã ASCII

Bảng mã ASCII bao gồm 256 ký tự được đánh số từ 0 đến 255. Nó bao gồm các ký tự thường gặp như chữ cái in hoa và in thường, chữ số và các ký tự đặc biệt như #, @, dấu cách và enter.

Bảng Mã ASCII Hình 1: Bảng Mã ASCII

Một số cụm mã ASCII cần nhớ:

  • Cụm ký tự a-z: Mã ASCII từ 97 đến 122
  • Cụm ký tự A-Z: Mã ASCII từ 65 đến 90
  • Cụm ký tự '0'-'9': Mã ASCII từ 48 đến 57

Lưu ý rằng trong lập trình C++, kiểu dữ liệu char được sử dụng để lưu ký tự, nhưng cũng có thể sử dụng để lưu số nguyên.

2. Các Câu Lệnh Kiểm Tra Loại Ký Tự

Trong quá trình làm việc với ký tự hoặc chuỗi ký tự, bạn thường phải kiểm tra loại ký tự, ví dụ như kiểm tra xem nó có phải là chữ hoa, chữ thường, chữ số hay chuyển đổi giữa chữ hoa và chữ thường.

Ngôn ngữ C++ đã cung cấp các hàm xử lý yêu cầu này, nhưng để hiểu bản chất của vấn đề, bạn nên tự viết các câu lệnh kiểm tra loại ký tự riêng.

Kiểm tra ký tự in thường:

bool isLowerCase(char c) {     return c >= 'a' && c <= 'z'; }

Kiểm tra ký tự in hoa:

bool isUpperCase(char c) {     return c >= 'A' && c <= 'Z'; }

Kiểm tra chữ cái:

bool isAlphabet(char c) {     return isLowerCase(c) || isUpperCase(c); }

Kiểm tra chữ số:

bool isDigit(char c) {     return c >= '0' && c <= '9'; }

Chuyển đổi in hoa, in thường:

Chữ cái in hoa có mã ASCII nhỏ hơn chữ cái in thường tương ứng với nó 32 đơn vị. Vì vậy, để chuyển chữ hoa thành chữ thường, bạn chỉ cần cộng thêm 32 đơn vị vào mã ASCII của chữ hoa. Ngược lại, nếu bạn có ký tự in thường và muốn chuyển thành in hoa, hãy trừ đi 32 đơn vị.

char toLowerCase(char c) {     if (isUpperCase(c)) {         return c + 32;     }     return c; }  char toUpperCase(char c) {     if (isLowerCase(c)) {         return c - 32;     }     return c; }

3. Thư Viện Ctype.h

Nếu bạn đã thành thạo các câu lệnh kiểm tra ở mục 2, ngôn ngữ C++ đã cung cấp thư viện ctype.h với các hàm có sẵn để kiểm tra loại ký tự.

Dưới đây là một số hàm phổ biến trong thư viện ctype.h:

Hàm Chức Năng
islower(char c) Trả về 1 (đúng) nếu ký tự c là chữ cái in thường, ngược lại trả về 0 (sai)
isupper(char c) Trả về 1 (đúng) nếu ký tự c là chữ cái in hoa, ngược lại trả về 0 (sai)
isalpha(char c) Trả về 1 (đúng) nếu ký tự c là chữ cái, ngược lại trả về 0 (sai)
isdigit(char c) Trả về 1 (đúng) nếu ký tự c là chữ số, ngược lại trả về 0 (sai)
isalnum(char c) Trả về 1 (đúng) nếu ký tự c là chữ số hoặc chữ cái, ngược lại trả về 0 (sai)
tolower(char c) Trả về mã ASCII tương ứng của ký tự in thường của ký tự c
toupper(char c) Trả về mã ASCII tương ứng của ký tự in hoa của ký tự c

Ví dụ 1: Kiểm tra chữ in hoa và chữ in thường

#include  #include   int main() {     char c = 'A';      if (islower(c)) {         printf("%c la chu thuong\n", c);     } else if (isupper(c)) {         printf("%c la chu hoa\n", c);     } else {         printf("%c khong phai chu cai\n", c);     }      return 0; }

Output: A la chu hoa

Ví dụ 2: Chuyển đổi in hoa và chữ thường

#include  #include   int main() {     char c = 'a';      printf("In hoa: %c\n", toupper(c));     printf("In thuong: %c\n", tolower(c));      return 0; }

Output: In hoa: A In thuong: a

Đây là một số kiến thức cơ bản về bảng mã ASCII và thư viện ctype trong ngôn ngữ lập trình C++. Hi vọng bài viết này giúp bạn hiểu thêm về kiểu dữ liệu char và có thể xử lý các kiểu ký tự một cách dễ dàng và hiệu quả.

1