Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm tần suất xuất hiện của ký tự trong chuỗi


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;