Cái này bạn có thể dùng cây nhị phân.Hoặc dùng một mảng đếm cũng được.
Về cây nhị phân bạn tự tìm hiểu nhé.
Còn về mảng đếm bạn có thể hiểu như sau:
int Count_str[94];
khởi tạo for(int i=0;i<94;i++) Count_str[i]=0;//đưa bộ đếm về 0
rồi bạn duyệt chuỗi của bạn, và lấy các ký tự chuyển sang kiểu ascii
ví dụ: ký tự space có mã ascii là 32 thì bạn phải chuyển
Count[ascii(ch)-32]++;//hoặc không chuyển sang thì bạn sử dụng luôn Count_str['ch'-32]++;
//ở đây biến ch kiểu ký tự, mục đích lưu kí tự thứ i của chuỗi nguồn
khi duyệt hết chuỗi thì duyệt Count_str để đưa ra thông tin các ký tự.
Đó là ý kiến của mình