[C]. Bảng Mã ASCII

Bảng mã ASCII là một bảng chứa 256 ký tự được đánh số từ 0 đến 255, bao gồm các ký tự phổ biến như:

  • Chữ cái in hoa và in thường: ‘a’, ‘b’, ‘c’, ‘Z’, ‘X’, ‘Y’
  • Chữ số: ‘0’, ‘1’, ‘2’…
  • Các ký tự đặc biệt: #, @, dấu cách, enter…

Các cụm mã ASCII cần nhớ

  • a – z: 97 – 122
  • A – Z: 65 – 90
  • 0 – 9: 48 – 57

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

Khi tham gia các phép toán số học hoặc sử dụng kiểu char như một số nguyên, mã ASCII của ký tự sẽ được sử dụng. Ví dụ, khi bạn in ra kiểu kí tự char với đặc tả số nguyên, bạn sẽ thu được mã ASCII của ký tự đó.

Ví dụ 1:

#include "stdio.h"
int main(){
    char kitu1 = 'A', kitu2 = 'a', kitu3 = '0';
    printf("%d %d %dn", kitu1, kitu2, kitu3);
    int n = kitu1;
    printf("%dn", n);
    return 0;
}

Output: 65 97 48 65

Ví dụ 2:

#include "stdio.h"
int main(){
    char kitu1 = 'A';
    int n = kitu1 + 10;
    printf("%dn", n);
    ++kitu1;
    printf("%d %cn", kitu1, kitu1);
    return 0;
}

Output: 75 66 B

Các câu lệnh kiểm tra loại ký tự

Khi 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ự, 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.

Trong ngôn ngữ lập trình C đã có các hàm sẵn để xử lý yêu cầu này, nhưng để hiểu bản chất vấn đề, bạn nên tự viết câu lệnh kiểm tra loại ký tự riêng cho mình.

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

#include "stdio.h"
int main(){
    char c = 'u';
    // Cách 1
    if(c >= 'a' && c <= 'z'){
        printf("YESn");
    } else{
        printf("NOn");
    }
    // Cách 2
    if(c >= 97 && c <= 122){
        printf("YESn");
    } else{
        printf("NOn");
    }
    return 0;
}

Kiểm tra ký tự in hoa:

#include "stdio.h"
int main(){
    char c = 'Z';
    // Cách 1
    if(c >= 'A' && c <= 'Z'){
        printf("YESn");
    } else{
        printf("NOn");
    }
    // Cách 2
    if(c >= 65 && c <= 90){
        printf("YESn");
    } else{
        printf("NOn");
    }
    return 0;
}

Kiểm tra chữ cái:

#include "stdio.h"
int main(){
    char c = 'Z';
    // Cách 1
    if((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')){
        printf("YESn");
    } else{
        printf("NOn");
    }
    return 0;
}

Kiểm tra chữ số:

#include "stdio.h"
int main(){
    char c = '5';
    // Cách 1
    if(c >= '0' && c <= '9'){
        printf("YESn");
    } else{
        printf("NOn");
    }
    // Cách 2
    if(c >= 48 && c <= 57){
        printf("YESn");
    } else{
        printf("NOn");
    }
    return 0;
}

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 32 đơn vị, ví dụ ‘A’ – 65 và ‘a’ – 97. Vì vậy, để chuyển in hoa thành in thường, bạn chỉ cần cộng thêm 32 vào ký tự in thường. Ngược lại, nếu bạn có ký tự in thường và muốn chuyển thành in hoa, bạn sẽ trừ đi 32 đơn vị.

#include "stdio.h"
int main(){
    char c = 'A';
    c += 32;
    printf("%cn", c);

    char kitu = 'z';
    kitu -= 32;
    printf("%cn", kitu);  
    return 0;
}

Các hàm kiểm tra loại ký tự

Ngôn ngữ C đã cung cấp cho bạn các hàm có sẵn để kiểm tra loại ký tự. Bạn có thể sử dụng các hàm này nếu đã thành thạo các câu lệnh kiểm tra loại ký tự ở phần trước.

Các hàm này nằm trong thư viện ctype.h.

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

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

#include "stdio.h"
#include "ctype.h"
int main(){
    char c = 'A', d = 'z'; 
    if(isupper(c)){ 
        printf("YESn");
    } else{
        printf("NOn");
    }
    if(islower(d)){
        printf("YESn");
    } else{
        printf("NOn");
    }
    return 0;
}

Ví dụ 2: Chuyển đổi in hoa, in thường

#include "stdio.h"
#include "ctype.h"
int main(){
    char c = 'A', d = 'z';
    c = tolower(c);
    d = toupper(d);
    printf("%c %cn", c, d);
    return 0;
}

Đó là những điểm cơ bản về bảng mã ASCII trong ngôn ngữ lập trình C. Đừng quên xem bài giảng của mình về chủ đề này để hiểu thêm chi tiết.

Bảng Mã ASCII

Caption: Bảng Mã ASCII

FEATURED TOPIC