#include #include #include #include // yeu cau 1 void dem_tu(char chuoi[], int do_dai_chuoi) { int so_tu = (!isspace(chuoi[0])); for (int i = 0; i < do_dai_chuoi; i++) { if (isspace(chuoi[i]) && !isspace(chuoi[i + 1])) { // Trước là khoản trắng và ký tự sau là chữ thì tăng so_tu so_tu++; } } printf("\nSo tu cua chuoi tren la %d", so_tu); } // yeu cau 2 void dem_ky_tu(char chuoi[],int do_dai_chuoi) { printf("\n\nDem tung loai ky tu trong chuoi"); int temp, dem, x = 0; // Khai báo biến trong đó ..... char ky_tu[62]; // Do a-z, A-Z và 0-9 có 62 ký tự for (int i = 0; i < do_dai_chuoi; i++) { dem = 0; // Bắt đầu mỗi vòng lặp cho dem = 0 if (!isspace(chuoi[i])) { // Nếu chuoi[i] không phải khoảng trắng thì thực hiện temp = 1; // Bắt đầu mỗi vòng lặp gán temp=1 for (int j = i-1; j >= 0; j--) { // Kiểm tra đếm số ký tự khác nhau có trong chuỗi if (chuoi[i] == chuoi[j]) { temp =0; break; } } if (temp == 1) { // Gán giá trị ky_tu = chuoi ky_tu[x] = chuoi[i]; for (int k = 0; k < do_dai_chuoi; k++) { // Đếm xem có bao nhiêu ký tự giống nhau trong chuỗi if (ky_tu[x] == chuoi[k]) { dem++; } } printf("\n%c:%d", ky_tu[x], dem); x++; } } } } int main() { char chuoi[200]; gets(chuoi); int do_dai_chuoi = strlen(chuoi); if (do_dai_chuoi > 200 || do_dai_chuoi == 0) { printf("\nSố ký tự phải lớn hơn 0 và nhỏ hơn 200"); } else { dem_tu(chuoi, do_dai_chuoi); dem_ky_tu(chuoi, do_dai_chuoi); } return 0; }