Chuỗi (string) là mảng ký tự một chiều kết thúc bằng ký tự null. Tần suất ký tự trong chuỗi là số lần ký tự đó xuất hiện. Ví dụ:
Chuỗi: Football is a sport Tần suất chữ 'o' trong chuỗi trên là 3
Chương trình tìm tần suất của một ký tự cụ thể:
Ví dụ
#include <iostream>
using namespace std;
int main() {
char str[100] = "this string contains many alphabets";
char c = 'a';
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == c)
count++;
}
cout << "Tần suất ký tự " << c << " trong chuỗi là " << count;
return 0;
}
Kết quả đầu ra
Tần suất ký tự a trong chuỗi là 4
Trong chương trình, vòng lặp for tìm tần suất ký tự 'a' cho chuỗi cho trước. Trong vòng lặp, nếu str[i] bằng ký tự cần tìm, tăng count lên 1. Giá trị count hiển thị là tần suất:
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == c)
count++;
}
cout << "Tần suất ký tự " << c << " trong chuỗi là " << count;
Chương trình tìm tần suất của TẤT CẢ các chữ cái trong chuỗi:
Ví dụ
#include <iostream>
using namespace std;
int main() {
char str[100] = "this string contains many alphabets";
int i = 0, alphabet[26] = {0}, j;
while (str[i] != '\0') {
if (str[i] >= 'a' && str[i] <= 'z') {
j = str[i] - 'a';
++alphabet[j];
}
++i;
}
cout << "Tần suất tất cả chữ cái trong chuỗi:" << endl;
for (i = 0; i < 26; i++)
cout << char(i + 'a') << " : " << alphabet[i] << endl;
return 0;
}
Kết quả đầu ra
Tần suất tất cả chữ cái trong chuỗi: a : 4 b : 1 c : 1 d : 0 e : 1 f : 0 g : 1 h : 2 i : 3 j : 0 k : 0 l : 1 m : 1 n : 4 o : 1 p : 1 q : 0 r : 1 s : 4 t : 4 u : 0 v : 0 w : 0 x : 0 y : 1 z : 0
Trong chương trình, vòng lặp while tìm tần suất tất cả chữ cái. Mảng alphabet[] lưu tần suất. Biến j lưu giá trị số của chữ cái (a=0, b=1...). Sau đó tăng chỉ số j của mảng alphabet lên 1:
while (str[i] != '\0') {
if (str[i] >= 'a' && str[i] <= 'z') {
j = str[i] - 'a';
++alphabet[j];
}
++i;
}
Sau khi duyệt hết chuỗi, in tần suất các chữ cái:
cout << "Tần suất tất cả chữ cái trong chuỗi:" << endl; for (i = 0; i < 26; i++) cout << char(i + 'a') << " : " << alphabet[i] << endl;