サンプルプログラムの解釈についてアドバイス欲しいです(初心者です)
Posted: 2011年6月08日(水) 23:03
入力文字を’文字’型0~9として受け取り、数値0~9に変換するプログラムです。
サンプルプログラムに自分でコメント付けました。全然合ってないと思うのですが
どれ位理解出来ているのか、どなたか見て頂けないでしょうか?
よろしくおねがいします><
サンプルプログラムに自分でコメント付けました。全然合ってないと思うのですが
どれ位理解出来ているのか、どなたか見て頂けないでしょうか?
よろしくおねがいします><
#include <stdio.h>
int get_line(char line[]); // getcharから入力した文字列を格納する関数
int char_to_int(char c); // 文字型を数値型に変換する関数
int n=0; // グローバル変数
int main()
{
char line[80]; // 入力文字列を格納する配列の宣言
printf("文字を1つ入力してください(エンター入力で受け取ります\n");
get_line(line); // char型line配列の先頭アドレスを渡し、get_line呼び出し。毎回1がreturn?
n = char_to_int(line[0]); // Line[0]の実体(1)を渡してchar_to_int呼び出しnに代入。int型になったcがnに格納される
printf("数値では[%d]\n",n); // 変換結果n(int型)の出力
return 0;
}
int get_line(char line[]) // getcharから入力した文字列を格納する関数
{
int c, i = 0; // get_line内のみ有効なローカル変数 ※iは0と1にしか変化しない?
while (((c = getchar()) != '\n') && (i < 79)) // getchar入力においてエンターが押されるまでの間かつ、iが79より小さい間?
line[i++] = c; // Line[i]に入力値cが代入される(この行が終わったらiが++変化)
line[i] = '\0'; // i=1になり、Line[1]に\0が代入される
return i; // iを返す。メインでは帰ってきたint型の1を受け取る所が無い&しかも関数処理が終了すると
// iは初期化されるから、iはいつも0,1にしかならない?
}
int char_to_int(char c) // 間数内ローカル変数
{
return c - '0'; // cから¥0をとり、cを返す=get_lineによって文字列となったcから\0を取る=int型にして、返すということ
}