Previous: 変数の初期化と配列の初期化
Up: 配列 I
Next: 復習
Previous Page: 変数の初期化と配列の初期化
Next Page: 復習

標準関数 --- getchar(), putchar()

一文字入力      int getchar( void );
    一文字出力      int putchar( char );

標準入力から文字を一文字読む関数が、getchar である。getchar は 引数はなし、返り値は読み込んだ文字の整数値である。エラーまたはストリームの 終わりになると EOF を返す。( EOF は、システムで、 に定義 されている特別な値。 )

getchar() を繰り返し呼び出せば、次々と文字を読むことが出来る。

標準出力に文字を一文字出力する関数が、putchar である。putchar は、引数に出力したい文字をとり、返り値は、出力した文字の整数値である。

/* 入力またはファイルの終わりまで読みとり、出力 */
#include <stdio.h>
main(){
    char c;
    while( (c=getchar()) != EOF ){
        putchar(c);
    }
}

注意 キーボードからファイルの終わりを入力するには、crtl+D ( コントロールキーと d を同時に )押せば良い。

課題15

cd c を実行した後で( /c に移動した後で )、以下の課題を やってみよ。

課題 15.1
配列を使う I

大きさ10の整数型配列を確保し、それぞれ0番目の要素から順に 0,1,2,...,9 を 代入した上で、それらをディスプレイに出力するプログラムを作成せよ。

課題 15.2
配列を使う II

文字型の配列を自分の名前( ローマ字 )で初期化し、それらを出力せよ。 例えば、配列 name には、'k','a','n','a','y','a','m','a' が入っていて、 出力すると kanayama とでるようにせよ。但し、初期化とループを使うこと。

課題 15.3
文字の出現回数を数える

標準入力から入力された 'a' から 'z' までの文字の出現回数を数えるプログラム を作成せよ。各文字の出現回数は、大きさ 26 の配列 kaisuu に格納する ものとする。また、'a' から 'z' までの小文字の英字以外はカウントせず、無視 するものとする。

以下のプログラムを参考にせよ。

char c;
    ...
    while ( (c=getchar()) != '\n' ){    /* リターンが押されるまで読み込む */
        /* ここに 'a' から 'z' のどれが出現したかを数えるプログラムを */
        /* 書くこと */
    }
    /* どの文字が何個あったかを出力する */

ヒント 文字変数 c は、 c - 'a' を計算すれば、要素の番号になる。例えば、 c に 'a' が入っていれば、 c - 'a' は、0 になる。

 

日本語が含まれない C 言語のプログラムのソースを読ませてみて、うまく動くか 確かめてみること。

作成したプログラムをメイルで金山まで送りなさい。題は、kadai15 とする事。

maruyama@wakhok.ac.jp
1995年02月08日 (水) 18時57分57秒 JST