文字列の読み込み

Rubyでの読み込みの復習

Ruby言語で、キーボードから値を読み込むときはたとえば次のようにした。

line = gets

これは、line という変数に、(デフォルトで)キーボードから 読んだ文字列を代入するものである。入力する文字数が何文字でも構わない。

C言語での読み込み

C言語では、「何文字でも良いから入力する」という融通のきいたことは 基本的にできない。なぜなら文字列は「配列」なので、決めた大きさよりも大き なものにはできない。あらかじめ「最大でこのくらい」という文字数を考えて それが入るだけ char 型配列を用意しておく必要がある。

「最大で100文字くらいかな」と見積もって文字列を読み込むには、 以下のようにする。

〜略〜
char line[100];
〜略〜
fgets(line, sizeof line, stdin);

これで登場するキーワードに付いて説明する。

読み込みの例

以下のプログラム aisatsu.cを 作成し、コンパイル&実行せよ。

#include <stdio.h>

int main()
{
    char name[100];
    printf("あなたの名前は? ");
    fgets(name, sizeof name, stdin);
    printf("こんにちは, %s さん!\n", name);
}

目次