#include <istream>
#include<iostream>
#include <cstdlib>
#include <cstring>
#include <iomanip>
using namespace std;
#define BUFFER_SIZE 10
int is_alpha(char c);
char tolower(char c);
void star(int num);
int ALPHA[26];
int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0;
int v=0,w=0,x=0,y=0,z=0 ;
int main() {
int count = 0;
char text[10000];
char ch;
cout << "영문 텍스트를 입력하세요. 히스토그램을 그립니다.\n";
cout << "텍스트의 끝은 ; 입니다. 10000개까지 가능합니다.\n";
cin.getline(text, 10000, ';');
for (int i = 0; i < strlen(text); i++) {//text를 소문자로만 구성하기
ch = tolower(text[i]);
text[i] = ch;
}
int sum = 0;
for (int i = 0; i < strlen(text); i++) {//text를 반복으로 돌리고 알파벳찾기
sum = sum + is_alpha(text[i]);
}
cout << endl;
cout << "총 알파벳 갯수:" << sum << endl;
int k=0;
for (int i =0 ; i <26; i++) {
cout << setw(1) <<char(i+97) << " (" << ALPHA[k] << ")" <<setw(1);
star(ALPHA[k]);
k++;
}
return 0;
}
char tolower(char chT) {// 일단 전체 단어들을 소문자로 바꿔줘야 한다
if (chT >= 65 && chT <= 90) {
chT = chT + 32;
}
return chT;
}
int is_alpha(char chT1) {// 알파벳검사후에 알파벳이면 카운트 해주기
int count = 0;
if (chT1 >= 97 && chT1 <= 122) {
count++;
}
//알파벳이면 a~z까지 if문 걸어주고 a,b,c등등 일때에 전역변수각각설정해준다음에 출력하기
if (chT1 == 'a') {
a++;
ALPHA[0] = a;
}
else if (chT1 == 'b') {
b++;
ALPHA[1] = b;
}
else if (chT1 == 'c') {
c++;
ALPHA[2] = c;
}
else if (chT1 == 'd') {
d++;
ALPHA[3] = d;
}
else if (chT1 == 'e') {
e++;
ALPHA[4] = e;
}
else if (chT1 == 'f') {
f++;
ALPHA[5] = f;
}
else if (chT1 == 'g') {
g++;
ALPHA[6] = g;
}
else if (chT1 == 'h') {
h++;
ALPHA[7] = h;
}
else if (chT1 == 'i') {
i++;
ALPHA[8] = i;
}
else if (chT1 == 'j') {
j++;
ALPHA[9] = j;
}
else if (chT1 == 'k') {
k++;
ALPHA[10] = k;
}
else if (chT1 == 'l') {
l++;
ALPHA[11] = l;
}
else if (chT1 == 'm') {
m++;
ALPHA[12] = m;
}
else if (chT1 == 'n') {
n++;
ALPHA[13] = n;
}
else if (chT1 == 'o') {
o++;
ALPHA[14] = o;
}
else if (chT1 == 'p') {
p++;
ALPHA[15] = p;
}
else if (chT1 == 'q') {
q++;
ALPHA[16] = q;
}
else if (chT1 == 'r') {
r++;
ALPHA[17] = r;
}
else if (chT1 == 's') {
s++;
ALPHA[18] = s;
}
else if (chT1 == 't') {
t++;
ALPHA[19] = t;
}
else if (chT1 == 'u') {
u++;
ALPHA[20] = u;
}
else if (chT1 == 'v') {
v++;
ALPHA[21] = v;
}
else if (chT1 == 'w') {
w++;
ALPHA[22] = w;
}
else if (chT1 == 'x') {
x++;
ALPHA[23] = x;
}
else if (chT1 == 'y') {
y++;
ALPHA[24] = y;
}
else if (chT1 == 'z') {
z++;
ALPHA[25] = z;
}
return count;
}
void star(int num) {
if (num>=10){
cout<< setw(2)<<": ";
}
else{
cout<< setw(2)<<" : ";
}
for (int i = 0; i < num; i++) {
cout << "*";
}
cout << endl;
}