質問編集履歴
3
修正
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
文章修正、補足
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
ちょっとした文章修正を行いました
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
|
|