再び scanf 再考 scanf での文字列入力 char line[10]; scanf ( "%s", line ); /* 何故か '&' がない.. */ /* line はポインターなので.. */ 途中から入力するには.. char line[10] = "abcdef"; scanf ( "%s", line + 3 ); /* "xy" と入力すると.. */ printf ( "%s\n", line ); /* "abcxy" と後が上書きされる */ 準備した領域より長い文字列をいれたらどうなるか ? 危険なポインターの利用になってしまう... 「正しい文字列」の入力方法 scanf で長さ指定 scanf ( "%9s", line ); fgets を利用する。 fgets ( line, 10, stdin );