컴공생의 다이어리
[c++] 입력받은 문자열에서의 특정 문자 빈도 수 본문
문제
문자열을 읽고 문자의 빈도를 계산하는 프로그램을 작성하시오. 예를 들어, ALL이 총 문자 수이고 N가 문자 'a'의 수이면 문자 'a'의 빈도는 N / ALL 으로 계산할 수 있다. 입력 문자열은 대소 문자를 구분하지 않는다.
코드
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
char buf[50] = { 0, }; //문자열
int count[26] = { 0 , }; //A ~ Z
cout << "문자열 입력 : ";
cin.getline(buf, sizeof(buf));
char* p = buf;
int len = 0;
double rate;
while (*p != '\0'){
*p = toupper(*p); //대문자로 바꾸기
if (*p >= 'A' && *p <= 'Z')
count[*p - 'A']++;
p++;
}
for (int i = 65; i <= 90; i++)
{
len += count[i - 'A'];
}
cout << "결과" << endl;
for (int i = 0; i < 26; i++){
rate = (double)count[i] / (double)len;
if (count[i] != 0)
cout << (char)('A' + i) << '(' << (char)('a' + i) << ") "
<< fixed << setprecision(6) << rate << endl;
}
return 0;
}
출력결과
728x90
'Development > C & C++' 카테고리의 다른 글
[c++] 숫자로 주어진 시간을 텍스트로 변환 (0) | 2021.02.15 |
---|---|
[c++] 두 지점 A, B 사이에 위치할 수 있는 C (0) | 2021.02.14 |
[c++] 2차 함수의 최대 값과 최소값 찾기 (0) | 2021.02.12 |
[c++] 정보 추가, 삭제, 검색 및 정렬 프로그램 (0) | 2021.02.11 |
[c++] 교통 카드 잔액 (0) | 2021.02.10 |
Comments