C++ Programming Ch.2 Exercise 16 Solution
Problem: ์๋ฌธ ํ ์คํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ํ๋ฒณ ํ์คํ ๊ทธ๋จ์ ๊ทธ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋๋ฌธ์๋ ๋ชจ๋ ์๋ฌธ์๋ก ์ง๊ณํ๋ฉฐ, ํ ์คํธ ์ ๋ ฅ์ ๋์ ';' ๋ฌธ์๋ก ํ๋ค. Objective & Hints: ๋ฌธ์์ด ์ฝ๊ธฐ, C++ ํ๋ก๊ทธ๋จ ์ข ํฉ ์์ฉ Input File: ์ ๋ ฅํ ํ ์คํธ ํ์ผ์ ์ฒจ๋ถํ์์ต๋๋ค. [2-16.txt 0.00MB](https://blog.kakaocdn.net/dna/EsAHK/btqChFfPBnw/AAAAAAAAAAAAAAAAAAAAAOhcwRebixdRiSrFB2r5c8Z4mBZDeCt4ibUUEp2n5aCw/2-16.txt?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1788188399&allow_ip=&allow_referer=&signature=PEoHUr5ktP9MyFLvskuQj0jS1Q8%3D&attach=1&knm=tfile.txt) Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include using namespace std; int main() { int tot=0; // ์ด ์ํ๋ฒณ ๊ฐ์ int alpha[27]={0}; // ๊ฐ๊ฐ์ ์ํ๋ฒณ์ ๋ํ๋ char text[10000]; // text๋ฅผ ์ ์ฅํ ๋ฐฐ์ด cout << "์๋ฌธ ํ ์คํธ๋ฅผ ์ ๋ ฅํ์ธ์. ํ์คํ ๊ทธ๋จ์ ๊ทธ๋ฆฝ๋๋ค.\nํ ์คํธ์ ๋์ ; ์ ๋๋ค. 10000๊ฐ๊น์ง ๊ฐ๋ฅํฉ๋๋ค.\n"; cin.getline(text,10000,';'); // ์ต๋ 10,000๊ฐ์ ์๋ฌธ ํ ์คํธ๋ฅผ ';'์ ๊น์ง ์ ๋ ฅ๋ฐ๋๋ค for (int i = 0; i<strlen(text); i++) { // text[0]๋ถํฐ text์ ๋๊น์ง if (isalpha(text[i])) { // text[i]๊ฐ ์ํ๋ฒณ์ด๋ฉด ์ฐธ if(text[i]<91) text[i] = tolower(text[i]); // text[i]๊ฐ ๋๋ฌธ์์ด๋ฉด ์๋ฌธ์๋ก ๋ณ๊ฒฝ tot++; alpha[text[i] - 97]++; // ๊ฐ๊ฐ์ ์ํ๋ฒณ์ด ๋ช๊ฐ์ธ์ง ์นด์ดํธ } } cout << "์ด ์ํ๋ฒณ ์ " << tot << endl << endl; for (int i = 0; i < 26; ++i) { // ์ํ๋ฒณ์ ์๋ฌธ์ ์ด ๊ฐ์๋ 26๊ฐ (a~z) cout << (char)(i+'a') << "(" << alpha[i] << ")"; // a๋ถํฐ z๊น์ง ์ถ๋ ฅ ํ ๊ฐ (์ํ๋ฒณ์ ๊ฐ์) ์ถ๋ ฅ cout << "\t: "; // ํฌ๋งท์ ์ถ๋ ฅํ๊ธฐ ์ํด ํญ๊ณผ ":" ์ถ๋ ฅ for (int j = 1; j <= alpha[i]; j++) // ๊ฐ ์ํ๋ฒณ์ ๊ฐ์๋งํผ "*" ์ถ๋ ฅ cout << "*"; cout << endl; } } Explanation: ...