はじめての C
あるファイル中の a から z までの文字の出現回数を数えるプログラムを作成せよ。
標準入力の方法はつぎのとおり
$./countwd < txt.file
- /* countwd */
- #include
- main()
- {
- char ch;
- int count[26];
- int ii, num;
- 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, v = 0, w = 0, x = 0, y = 0, z = 0;
- for ( ii = 0 ; ii < 26 ; ii++ ) {
- count[ii] = 0; /* すべての配列に 0 を入れておく */
- }
- while ((ch = getchar()) != EOF) {
- num = ch - 'a';
- switch (num) {
- case 0 : a++, count[0] = a; break;
- case 1 : b++, count[1] = b; break;
- case 2 : c++, count[2] = c; break;
- case 3 : d++, count[3] = d; break;
- case 4 : e++, count[4] = e; break;
- case 5 : f++, count[5] = f; break;
- case 6 : g++, count[6] = g; break;
- case 7 : h++, count[7] = h; break;
- case 8 : i++, count[8] = i; break;
- case 9 : j++, count[9] = j; break;
- case 10 : k++, count[10] = k; break;
- case 11 : l++, count[11] = l; break;
- case 12 : m++, count[12] = m; break;
- case 13 : n++, count[13] = n; break;
- case 14 : o++, count[14] = o; break;
- case 15 : p++, count[15] = p; break;
- case 16 : q++, count[16] = q; break;
- case 17 : r++, count[17] = r; break;
- case 18 : s++, count[18] = s; break;
- case 19 : t++, count[19] = t; break;
- case 20 : u++, count[20] = u; break;
- case 21 : v++, count[21] = v; break;
- case 22 : w++, count[22] = w; break;
- case 23 : x++, count[23] = x; break;
- case 24 : y++, count[24] = y; break;
- case 25 : z++, count[25] = z; break;
- }
- }
- printf("count of 'a' -> %d\n", count[0]);
- printf("count of 'b' -> %d\n", count[1]);
- printf("count of 'c' -> %d\n", count[2]);
- printf("count of 'd' -> %d\n", count[3]);
- printf("count of 'e' -> %d\n", count[4]);
- printf("count of 'f' -> %d\n", count[5]);
- printf("count of 'g' -> %d\n", count[6]);
- printf("count of 'h' -> %d\n", count[7]);
- printf("count of 'i' -> %d\n", count[8]);
- printf("count of 'j' -> %d\n", count[9]);
- printf("count of 'k' -> %d\n", count[10]);
- printf("count of 'l' -> %d\n", count[11]);
- printf("count of 'm' -> %d\n", count[12]);
- printf("count of 'n' -> %d\n", count[13]);
- printf("count of 'o' -> %d\n", count[14]);
- printf("count of 'p' -> %d\n", count[15]);
- printf("count of 'q' -> %d\n", count[16]);
- printf("count of 'r' -> %d\n", count[17]);
- printf("count of 's' -> %d\n", count[18]);
- printf("count of 't' -> %d\n", count[19]);
- printf("count of 'u' -> %d\n", count[20]);
- printf("count of 'v' -> %d\n", count[21]);
- printf("count of 'w' -> %d\n", count[22]);
- printf("count of 'x' -> %d\n", count[23]);
- printf("count of 'y' -> %d\n", count[24]);
- printf("count of 'z' -> %d\n", count[25]);
- }
(変数の数を もっと減らせる方法はないんだろうか ?)
text: 金山典世さん(稚内北星)のページ