回答編集履歴
2
誤解生みそうな分修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
(おそらく最後の行だけは改行コードで終わっていない)
|
16
16
|
|
17
|
-
`strlen`は文字数というよりバイト数を読んでいる
|
17
|
+
`strlen`は文字数というよりバイト数を読んでいるので `10`で 2文字(2bytes) + `\n` 1文字(1byte) をカウントしているため、結果が3(文字, byte)となってしまっています。
|
18
18
|
|
19
19
|
解決策としては `fgets`の戻り値をそのまま使わず、`trim`関数に通すことなどがあげられるかと思います。
|
20
20
|
|
1
改行コード
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
fgetsで入力を読む場合、読み取った文字列には末尾の改行コードまでが含まれています。
|
1
|
+
fgetsで入力を読む場合、読み取った文字列には末尾の改行コード(\n)までが含まれています。
|
2
2
|
|
3
3
|
今回の場合、目には見えませんが末尾に改行コードがついているので入力値は以下のようになっているかと思います。
|
4
4
|
|