質問編集履歴
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,11 +54,11 @@
|
|
54
54
|
|
55
55
|
forの継続条件についてですが、単に**i<10**としただけでは、入力された文字列が10文字未満だった場合、
|
56
56
|
|
57
|
-
ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないor?が出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
|
57
|
+
ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないor「?」が出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
|
58
58
|
|
59
59
|
このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納されるとき、すなわち、変数iが4の時となる。
|
60
60
|
|
61
|
-
そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2
|
61
|
+
そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2を引いてやる。
|
62
62
|
|
63
63
|
そうすることで、空文字の前の文字、つまり、その文字列の末尾文字が取得出来る、と考えたのですが…
|
64
64
|
|
2
文章修正、補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,17 +66,17 @@
|
|
66
66
|
|
67
67
|
###期待と実行結果
|
68
68
|
|
69
|
-
実際
|
69
|
+
実際にこのコードを実行してみました。
|
70
70
|
|
71
71
|
標準入力にて
|
72
72
|
|
73
|
-
w1を__abcdefghij__
|
73
|
+
w1を__abcdefghij__(10文字)
|
74
74
|
|
75
|
-
w2を__aiueokaki__
|
75
|
+
w2を__aiueokaki__(8文字)
|
76
76
|
|
77
77
|
としたのですが、
|
78
78
|
|
79
|
-
結果は
|
79
|
+
その結果は
|
80
80
|
|
81
81
|
```
|
82
82
|
|
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
```
|
88
88
|
|
89
|
-
というもの
|
89
|
+
というものでした。
|
90
90
|
|
91
91
|
この結果は不可解です。
|
92
92
|
|
1
ちょっとした文章修正を行いました
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
ループが10回まわることで、値が入っていないorおかしな数値の入っている(ここら辺の理解が不十分です)w1[9]やw2[9]の文字が取られてしまい、最終的に、末尾文字が出力されないor?が出力されると思い、継続条件に**w[i]!='\0'**を追加しました。
|
58
58
|
|
59
|
-
このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納される変数iが4の時となる。
|
59
|
+
このように書けば、たとえば、配列変数w1[]に格納されている文字列がkakiであった場合、4文字目のiの次の配列要素は空文字(つまり'\0')であり(自信がないですが)、kakiはそれぞれ1つずつ順番に配列変数w[0]~w[3]に格納されているので、このループの最終回は、初めて空文字が配列に格納されるとき、すなわち、変数iが4の時となる。
|
60
60
|
|
61
61
|
そしてループが終了されるとi++により、さらにiが1足され、i=5となる。なので、ループを抜けたあとにiから2と引いてあげる。
|
62
62
|
|