回答編集履歴

2

誤解生みそうな分修正

2020/07/15 15:38

投稿

rozeo_s
rozeo_s

スコア110

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  (おそらく最後の行だけは改行コードで終わっていない)
16
16
 
17
- `strlen`は文字数というよりバイト数を読んでいるという動きに近く `10`で 2文字(2bytes) + `\n` 1文字(1byte) をカウントしているため、結果が3(文字, byte)となってしまっています。
17
+ `strlen`は文字数というよりバイト数を読んでいるので `10`で 2文字(2bytes) + `\n` 1文字(1byte) をカウントしているため、結果が3(文字, byte)となってしまっています。
18
18
 
19
19
  解決策としては `fgets`の戻り値をそのまま使わず、`trim`関数に通すことなどがあげられるかと思います。
20
20
 

1

改行コード

2020/07/15 15:38

投稿

rozeo_s
rozeo_s

スコア110

test CHANGED
@@ -1,4 +1,4 @@
1
- fgetsで入力を読む場合、読み取った文字列には末尾の改行コードまでが含まれています。
1
+ fgetsで入力を読む場合、読み取った文字列には末尾の改行コード(\n)までが含まれています。
2
2
 
3
3
  今回の場合、目には見えませんが末尾に改行コードがついているので入力値は以下のようになっているかと思います。
4
4