Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

문자열에서 문자의 빈도를 찾는 C++ 프로그램

<시간/>

문자열은 null 문자로 끝나는 1차원 문자 배열입니다. 문자열에서 문자의 빈도는 문자열에서 나타나는 횟수입니다. 예를 들어 -

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

특정 알파벳의 빈도를 찾는 프로그램은 다음과 같습니다.

예시

#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;
}

출력

Frequency of alphabet a in the string is 4

위의 프로그램에서 for 루프는 주어진 문자열에 대한 알파벳의 빈도를 찾는 데 사용됩니다. for 루프에서 str[i]가 알파벳과 같으면 count는 1씩 증가합니다. 이 count 값은 알파벳의 빈도로 표시됩니다. 이에 대한 코드 스니펫은 다음과 같습니다.

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

문자열에서 모든 알파벳의 빈도를 찾는 프로그램은 다음과 같습니다.

예시

#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;
}

출력

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

위의 프로그램에서 while 루프는 문자열의 모든 알파벳의 빈도를 찾는 데 사용됩니다. 배열 알파벳[]은 모든 알파벳의 빈도를 저장합니다. 변수 j는 알파벳의 숫자 값을 저장합니다. 즉, a는 0, b는 1 등입니다. 그런 다음 배열 알파벳의 j번째 인덱스가 1씩 증가합니다. 이것은 다음 코드 스니펫에 의해 설명됩니다. -

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;