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

質問編集履歴

3

修正

2018/09/08 16:51

投稿

gregolio122
gregolio122

スコア14

title CHANGED
File without changes
body CHANGED
@@ -26,9 +26,9 @@
26
26
  ```
27
27
  汎用性のないコードで申し訳ないです。
28
28
  forの継続条件についてですが、単に**i<10**としただけでは、入力された文字列が10文字未満だった場合、
29
- ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないor?が出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
29
+ ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないorが出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
30
30
  このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納されるとき、すなわち、変数iが4の時となる。
31
- そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2引いてあげる。
31
+ そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2引いてる。
32
32
  そうすることで、空文字の前の文字、つまり、その文字列の末尾文字が取得出来る、と考えたのですが…
33
33
 
34
34
  ###期待と実行結果

2

文章修正、補足

2018/09/08 16:51

投稿

gregolio122
gregolio122

スコア14

title CHANGED
File without changes
body CHANGED
@@ -32,17 +32,17 @@
32
32
  そうすることで、空文字の前の文字、つまり、その文字列の末尾文字が取得出来る、と考えたのですが…
33
33
 
34
34
  ###期待と実行結果
35
- 実際はそう思う通りはいきせんでした。
35
+ 実際にこのコードを実行してみました。
36
36
  標準入力にて
37
- w1を__abcdefghij__
37
+ w1を__abcdefghij__(10文字)
38
- w2を__aiueokaki__
38
+ w2を__aiueokaki__(8文字)
39
39
  としたのですが、
40
- 結果は
40
+ その結果は
41
41
  ```
42
42
  w1の末尾はeで、w2の末尾は
43
43
  です
44
44
  ```
45
- というものになってまいました。
45
+ というものした。
46
46
  この結果は不可解です。
47
47
  自分の考え方に間違いがあるものだと思いますが、どこが間違っているかがわかりません。
48
48
  どなたかご教示ください。

1

ちょっとした文章修正を行いました

2018/09/08 16:50

投稿

gregolio122
gregolio122

スコア14

title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,7 @@
27
27
  汎用性のないコードで申し訳ないです。
28
28
  forの継続条件についてですが、単に**i<10**としただけでは、入力された文字列が10文字未満だった場合、
29
29
  ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないor?が出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
30
- このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納される変数iが4の時となる。
30
+ このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納されるとき、すなわち、変数iが4の時となる。
31
31
  そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2と引いてあげる。
32
32
  そうすることで、空文字の前の文字、つまり、その文字列の末尾文字が取得出来る、と考えたのですが…
33
33