質問するログイン新規登録

回答編集履歴

2

追記

2018/09/08 21:49

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -29,5 +29,5 @@
29
29
 
30
30
  なお、`scanf("%c",&w[i]);` は改行も読み込みの対象にします。
31
31
  そして改行コードが入力された時の処理はなにもしていません。
32
- たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
32
+ がって修正済みのコードにて、たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
33
33
  二行を改行コードで連結した文字列の最初の 10 バイトが "abcd\nefghi" で、次の 10 バイトが "jklmnopqrs" であるためです。

1

追記

2018/09/08 21:49

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -23,4 +23,11 @@
23
23
 
24
24
  このように変えると、最後の文字が出力されました。
25
25
 
26
- `w[i]!='\0'` という条件がついていることにより、読み込みバッファ w[] の中に `'\0'` が含まれていると読み込みがそこでストップします。
26
+ `w[i]!='\0'` という条件がついていることにより、読み込みバッファ w[] の中に `'\0'` が含まれていると読み込みがそこでストップします。
27
+
28
+ ###追記
29
+
30
+ なお、`scanf("%c",&w[i]);` は改行も読み込みの対象にします。
31
+ そして改行コードが入力された時の処理はなにもしていません。
32
+ たとえば "abcd" "efghijklmnopqrstuv" が入力されたとき、w1 の末尾は i で w2 の末尾は s になります。
33
+ 二行を改行コードで連結した文字列の最初の 10 バイトが "abcd\nefghi" で、次の 10 バイトが "jklmnopqrs" であるためです。