配列サイズ以下の入力だったときに改行文字を\0に変換してんだろ?
サイズ一杯に入ったときと場合わけしてないからおかしいことになってるけどな。