C++

명품 C++ 실습문제 2장 16번

Hs’s Coding vlog 2023. 1. 3. 18:45
#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;
}

'C++' 카테고리의 다른 글

명품 C++ 실습문제 3장 1번  (0) 2023.01.03
명품 C++ 실습문제 2장 15번  (0) 2023.01.03
명품 C++ 실습문제 2장 14번  (0) 2023.01.02
명품 C++ 실습문제 2장 13번  (0) 2023.01.02
명품 C++ 실습문제 2장 12번  (0) 2023.01.02