Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm tần số của một ký tự trong một chuỗi

Chuỗi là một mảng ký tự một chiều được kết thúc bằng ký tự null. Tần suất của các ký tự trong một chuỗi là số lần chúng xuất hiện trong một chuỗi. Ví dụ -

String: Football is a sport
The frequency of alphabet o in the above string is 3

Một chương trình để tìm tần số của một bảng chữ cái cụ thể được đưa ra như sau.

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<<"Frequency of alphabet "<<c<<" in the string is "<<count;
   return 0;
}

Đầu ra

Frequency of alphabet a in the string is 4

Trong chương trình trên, vòng lặp for được sử dụng để tìm tần số của bảng chữ cái a cho chuỗi đã cho. Trong vòng lặp for, nếu str [i] bằng bảng chữ cái, thì số đếm sẽ tăng lên 1. Giá trị này của số đếm được hiển thị dưới dạng tần số của bảng chữ cái. Đoạn mã cho điều này được đưa ra như sau.

for(int i = 0; str[i] != '\0'; i++) {
   if(str[i] == c)
   count++;
}
cout<<"Frequency of alphabet "<<c<<" in the string is "<<count;

Chương trình tìm tần số của tất cả các bảng chữ cái trong chuỗi được đưa ra như sau.

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<<"Frequency of all alphabets in the string is:"<<endl;
   for (i = 0; i < 26; i++)
   cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl;
   return 0;
}

Đầu ra

Frequency of all alphabets in the string is:
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 trên, một vòng lặp while được sử dụng để tìm tần số của tất cả các bảng chữ cái trong chuỗi. Một bảng chữ cái mảng [] lưu trữ tần số của tất cả các bảng chữ cái. Biến j lưu trữ giá trị số của bảng chữ cái, tức là a là 0, b là 1, v.v. Sau đó, chỉ số thứ j của bảng chữ cái mảng được tăng lên 1. Điều này được chứng minh bằng đoạn mã sau -

while (str[i] != '\0') {
   if (str[i] >= 'a' && str[i] <= 'z') {
      j = str[i] - 'a';
      ++alphabet[j];
   }
   ++i;
}

Sau khi toàn bộ chuỗi được đánh giá, tần số của các bảng chữ cái sẽ được in ra. Điều này được hiển thị như sau.

cout<<"Frequency of all alphabets in the string is:"<<endl;
for (i = 0; i < 26; i++)
cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl;