-
명품 C++ 4장 13번C++ 2018. 10. 30. 02:02
13. 영문자로 구성된 텍스트에 대해 각 알파벳에 해당하는 문자가 몇 개이지 출력하는 히스토그램 클래스 Histogram을 만들어보자. 대문자는 모두 소문자로 변환하여 처리한다.
Histogram 클래스를 활용하는 사례와 실행 결과는 다음과 같다.
소스코드
#include <iostream>using namespace std;#include <string>class Histogram {string text;public:Histogram(string text);void put(string text);void putc(char c);void print();};Histogram::Histogram(string text) {this->text = text;cout << text << endl;;}void Histogram::put(string text) {this->text += text;cout << text;}void Histogram::putc(char c) {text += c;cout << c;}void Histogram::print() {int num = 0;int alphabet[26] = { 0 };for (int i = 0; i < text.length(); ++i) {if (isalpha(tolower(text[i])) != 0) {++num;alphabet[(int)(tolower(text[i]) - 97)]++;}}cout << endl << endl;cout << "총 알파벳 수 " << num;cout << endl << endl;for (int i = 0; i < 26; ++i) {char c = 'a' + i;cout << c << " (" << alphabet[i] << ")\t: ";for (int j = 0; j < alphabet[i]; ++j) {cout << "*";}cout << endl;}}int main() {Histogram elvisHisto("Wise men say, only fools rush in But I can't help, ");elvisHisto.put("falling in love with you");elvisHisto.putc('-');elvisHisto.put("Elvis Presley");elvisHisto.print();}실행결과
2장 12번 문제를 string 클래스를 사용하여 푸는 문제입니다.
'C++' 카테고리의 다른 글
명품 C++ 4장 Open Challenge (3) 2018.10.30 명품 C++ 4장 14번 (1) 2018.10.30 명품 C++ 4장 12번 (0) 2018.10.30 명품 C++ 4장 11번 (0) 2018.10.30 명품 C++ 4장 10번 (0) 2018.10.30