0965303260
TP. Hồ Chí Minh

[C]. Các Hàm Kiểm Tra Loại Ký Tự

Bài viết này mình sẽ giới thiệu các hàm kiểm tra loại ký tự thường gặp trong thư viện ctype.h 

NỘI DUNG : 

  • Thư Viện ctype.h
  • Ví Dụ
  • Video Tutorial 

ctype

1. Thư viện ctype.h

ctype.h cung cấp các hàm kiểm tra loại ký tự hay dùng, mình đã từng hướng dẫn các bạn cách tụ viết câu lệnh để kiểm tra loại ký tự.

Bây giờ bạn có thể sử dụng luôn các hàm có sẵn khi làm việc với xâu ký tự 

Lưu ý là các hàm trong thư viện này sử dụng để kiểm tra kí tự chứ ko phải kiểm tra chuỗi ký tự 

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

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


2. Ví dụ

Ví dụ 1. Đếm số lượng kí tự là chữ cái, chữ số và kí tự đặc biệt trong xâu

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

int main(){
    char c[1000] = "28tech C programming !!!";
    int chuso = 0, chucai = 0, dacbiet = 0;
    for(int i = 0; i < strlen(c); i++){
        if(isdigit(c[i])){
            ++chuso;
        }
        else if(isalpha(c[i])){
            ++chucai;
        }
        else{
            ++dacbiet;
        }
    }    
    printf("So luong chu so : %d\n", chuso);
    printf("So luong chu cai : %d\n", chucai);
    printf("So luong ki tu dac biet : %d\n", dacbiet);
    return 0;
}

Output : 

So luong chu so : 2
So luong chu cai : 16
So luong ki tu dac biet : 6


Ví dụ 2 : Chuyển chữ hoa thành chữ thường và ngược lại.

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

int main(){
    char c[1000] = "28tech C PROGRAMMING !!!";
    for(int i = 0; i < strlen(c); i++){
        if(islower(c[i])){
            c[i] = toupper(c[i]);
        }
        else if(isupper(c[i])){
            c[i] = tolower(c[i]);
        }
    }    
    printf("%s\n", c);
    return 0;
}

Output : 

28TECH c programming !!!


Ví dụ 3 : Tính tổng các chữ số xuất hiện trong xâu

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

int main(){
    char c[1000] = "28tech C PROGRAMMING 123abc456";
    int tong = 0;
    for(int i = 0; i < strlen(c); i++){
        if(isdigit(c[i])){
            //Chuyển kí tự => số bằng cách trừ đi kí tự '0'
            //'0' => 0, '1' => 1, '2' => 2....
            tong += (c[i] - '0'); 
        }
    }    
    printf("Tong cac chu so xuat hien trong xau : %d\n", tong);
    return 0;
}

Output : 

Tong cac chu so xuat hien trong xau : 31


Video Chuỗi Ký Tự : 

E5jkocjPUuU