ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 2장 16번
    C++ 2018. 10. 28. 03:00

    16. 영문 텍스트를 입력받아 알파벳 히스토그램을 그리는 프로그램을 작성하라. 대문자는 모두 소문자로 집계하며, 텍스트 입력의 끝은 ';' 문자로 한다.


    소스코드


    #include <iostream>
    #include <cstring>
    using namespace std;
    int main() {
        int num = 0;
        int alphabet[27] = { 0 };
        cout << "영문 텍스트를 입력하세요. 히스토그램을 그립니다.\n";
        cout << "텍스트의 끝은 ; 입니다. 10000개까지 가능합니다.\n";
        char alpha[10000];
        cin.getline(alpha, 10000, ';');
        for (int i = 0; i<strlen(alpha); ++i) {
            if (isalpha(tolower(alpha[i])) != 0) {
                ++alphabet[alpha[i] - 97];
                ++num;
            }
        }
        cout << "총 알파벳 수 " << num << endl;
        for (int i = 0; i < 26; ++i) {
            char asc = i + 'a';
            cout << asc << "(" << alphabet[i] << ")";
            for (int j = 0; j <4 - alphabet[i] / 10; ++j)
                cout << " ";
            cout << ": ";
            for (int j = 1; j <= alphabet[i]; ++j)
                cout << "*";
            cout << endl;
        }
    }


    실행결과


    isalpha(char c)는 알파벳인지 아닌지 확인해주는 함수입니다. 알파벳이면 !=0, 알파벳이 아니라면 ==0 입니다.

    tolower(char c)는 대문자를 소문자로 바꿔주는 함수입니다.

    ahphabet 라는 배열에는 각 알파벳이 몇 개인지 저장합니다.


    isalpha 함수에 대한 정보 출처 :  http://forum.falinux.com/zbxe/index.php?document_srl=520891&mid=C_LIB


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

    명품 C++ 3장 1번  (0) 2018.10.28
    명품 C++ 2장 Open Challenge  (0) 2018.10.28
    명품 C++ 2장 15번  (1) 2018.10.28
    명품 C++ 2장 14번  (0) 2018.10.28
    명품 C++ 2장 13번  (0) 2018.10.28

    댓글

© 2018 TISTORY. All rights reserved.