回答編集履歴
2
指摘してくださった方のお名前を訂正させていただきました。
answer
CHANGED
@@ -17,4 +17,4 @@
|
|
17
17
|
もともとのソースコードが'\0'でなく'0'になっていたことも問題なのですが、文字列の最後には'\0'という番兵がつくのですが文字列の最初には付かないのですよね。だから文字列の開始アドレスと比較してやる必要があります。
|
18
18
|
|
19
19
|
[2020.6.17 追記]
|
20
|
-
ソースコード間違ってました。
|
20
|
+
ソースコード間違ってました。Daregadaさんのソースコードを参考にして直しました。ありがとうございます。
|
1
逆順表示時のループ開始アドレスを修正
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
int main(void){
|
8
8
|
char *s = "Winter";
|
9
|
-
for (char *p = s + strlen(s); p >= s; --p) {
|
9
|
+
for (char *p = s + strlen(s) - 1; p >= s; --p) {
|
10
10
|
printf("%c", *p);
|
11
11
|
}
|
12
12
|
printf("\n");
|
@@ -14,4 +14,7 @@
|
|
14
14
|
}
|
15
15
|
```
|
16
16
|
|
17
|
-
もともとのソースコードが'\0'でなく'0'になっていたことも問題なのですが、文字列の最後には'\0'という番兵がつくのですが文字列の最初には付かないのですよね。だから文字列の開始アドレスと比較してやる必要があります。
|
17
|
+
もともとのソースコードが'\0'でなく'0'になっていたことも問題なのですが、文字列の最後には'\0'という番兵がつくのですが文字列の最初には付かないのですよね。だから文字列の開始アドレスと比較してやる必要があります。
|
18
|
+
|
19
|
+
[2020.6.17 追記]
|
20
|
+
ソースコード間違ってました。Doregadaさんのソースコードを参考にして直しました。ありがとうございます。
|