[C]. Bảng Mã ASCII

Bảng mã ASCII là một kiến thức quan trọng mà các bạn cần nắm được để có thể hiểu bản chất về kiểu dữ liệu char trong C.

NỘI DUNG :

  • Bảng Mã ASCII
  • Các Câu Lệnh Kiểm Tra Loại Ký Tự
  • Các Hàm Kiểm Tra Loại Ký Tự
  • Video Tutorial

1.Bảng Mã ASCII

Bảng mã ASCII chứa 256 ký tự được đánh số từ 0 tới 255 bao gồm các ký tự thường gặp như :

  • Chữ cái in hoa, 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… 

main

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

Cụm ký tự Mã ASCII
a – z 97 -> 122
A – Z 65 -> 90
‘0’ – ‘9’ 48 -> 57

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

Khi tham gia vào các phép toán số học hay sử dụng kiểu char như một số nguyên thì khi đó mã ASCII của kí tự đó sẽ được sử dụng. Xem ví dụ sau bạn sẽ hiểu rõ hơn

Ví dụ 1 : 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ự đó

#include "stdio.h"

int main(){
    char kitu1 = 'A', kitu2 = 'a', kitu3 = '0';
    
    printf("%d %d %d\n", kitu1, kitu2, kitu3);
    int n = kitu1; 
    printf("%d\n", n);
    return 0;
}
Output :
65 97 48
65

Ví dụ 2 : Sử dụng kiểu char với phép toán số học

#include "stdio.h"

int main(){
    char kitu1 = 'A';
    int n = kitu1 + 10; 
    printf("%d\n", n);
    ++kitu1; 
    printf("%d %c\n", kitu1, kitu1);
    return 0;
}
Output :
75
66 B

nain

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

Khi làm việc với ký tự hay chuỗi ký tự bạn thường xuyên phải kiểm tra loại ký tự xem nó là in hoa, in thường, chữ số hay chuyển đổi qua lại giữa chữ hoa và chữ thường.

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

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

#include "stdio.h"

int main(){
    char c = 'u';
    
    if(c >= 'a' && c <= 'z'){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    
    if(c >= 97 && c <= 122){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    return 0;
}

Kiểm tra kí tự in hoa : 

#include "stdio.h"

int main(){
    char c = 'Z';
    
    if(c >= 'A' && c <= 'Z'){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    
    if(c >= 65 && c <= 90){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    return 0;
}

Kiểm tra chữ cái : 

#include "stdio.h"

int main(){
    char c = 'Z';
    
    if((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    return 0;
}

Kiểm tra chữ số : 

#include "stdio.h"

int main(){
    char c = '5';
    
    if(c >= '0' && c <= '9'){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    if(c >= 48 && c <= 57){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    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 nó 32 đơn vị, ví dụ ‘A’ – 65 và ‘a’ – 97. Vì thế muốn chuyển in hoa thành in thường bạn chỉ cần cộng thêm 32 đơn vị 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("%c\n", c);
    char kitu = 'z';
    kitu -= 32;
    printf("%c\n", kitu);
    return 0;
}

3. 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 với mục đích kiểm tra loại ký tự, bạn có thể sử dụng hàm có sẵn nếu đã thành thạo các câu lệnh ở mục 2.

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

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

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

#include "stdio.h"
#include "ctype.h"

int main(){
    char c = 'A', d = 'z';
    if(isupper(c)){ 
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    if(islower(d)){
        printf("YES\n");
    }
    else{
        printf("NO\n");
    }
    return 0;
}

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

#include "stdio.h"
#include "ctype.h"

int main(){
    char c = 'A', d = 'z';
    c = tolower(c);
    d = toupper(d);
    printf("%c %c\n", c, d);
    return 0;
}

Xem thêm bài giảng của mình về bảng mã ASCII trong C : 

iuKNhPbYH4o

Related Posts

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *