回答編集履歴

2

追記

2018/09/08 21:49

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -60,6 +60,6 @@
60
60
 
61
61
  そして改行コードが入力された時の処理はなにもしていません。
62
62
 
63
- たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
63
+ がって修正済みのコードにて、たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
64
64
 
65
65
  二行を改行コードで連結した文字列の最初の 10 バイトが "abcd\nefghi" で、次の 10 バイトが "jklmnopqrs" であるためです。

1

追記

2018/09/08 21:49

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -49,3 +49,17 @@
49
49
 
50
50
 
51
51
  `w[i]!='\0'` という条件がついていることにより、読み込みバッファ w[] の中に `'\0'` が含まれていると読み込みがそこでストップします。
52
+
53
+
54
+
55
+ ###追記
56
+
57
+
58
+
59
+ なお、`scanf("%c",&w[i]);` は改行も読み込みの対象にします。
60
+
61
+ そして改行コードが入力された時の処理はなにもしていません。
62
+
63
+ たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
64
+
65
+ 二行を改行コードで連結した文字列の最初の 10 バイトが "abcd\nefghi" で、次の 10 バイトが "jklmnopqrs" であるためです。