#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
// 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;
}