#include <iostream>
#include <cstring>
using namespace std;
class Histogram
{
char* Words;
public:
Histogram(const char* InWords);
int WordsLen = 0;
void put(const char* PutWords);
void putc(const char* PutWords);
void print();
void show() { cout << Words << endl; }
};
Histogram::Histogram(const char* InWords)
{
int len = strlen(InWords);
Words = new char[1000];
strcpy_s(Words, len + 1, InWords);
WordsLen += len;
cout << InWords << endl;
}
void Histogram::put(const char* PutWords)
{
int len = strlen(PutWords);
if (WordsLen + len + 1 < 1000)
{
strcpy_s(Words + WordsLen, len + 1, PutWords);
WordsLen += len;
}
cout << PutWords;
}
void Histogram::putc(const char* PutWords)
{
int len = strlen(PutWords);
if (WordsLen + len + 1 < 1000)
{
strcpy_s(Words + WordsLen, len + 1, PutWords);
WordsLen += len;
}
cout << PutWords;
}
void Histogram::print()
{
int TotalABC = 0;
int Count[30] = { 0 };
for (int i = 0; i < WordsLen; i++)
{
if (Words[i] >= 65 && Words[i] <= 90)
{
int Num = Words[i];
Count[Num - 65]++;
TotalABC++;
}
else if (Words[i] >= 97 && Words[i] <= 122)
{
int Num = Words[i];
Count[Num - 97]++;
TotalABC++;
}
}
cout << endl;
cout << "총 알파벳 수 : " << TotalABC << endl;
cout << endl;
for (int i = 0; i < 26; i++)
{
printf("%c (%d) : ", 97 + i, Count[i]);
for (int j = 0; j < Count[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");
cout << endl;
elvisHisto.print();
cout << endl;
elvisHisto.show();
}