回答編集履歴
3
追記
answer
CHANGED
@@ -11,4 +11,12 @@
|
|
11
11
|
scanf("%c",n);
|
12
12
|
> ```
|
13
13
|
|
14
|
-
scanf を捨て、fgets を利用するのも賢明です。とりわけ文字列を
|
14
|
+
scanf を捨て、fgets を利用するのも賢明です。とりわけ文字列を捌く場合は。
|
15
|
+
|
16
|
+
---
|
17
|
+
ついでに。この箇所も変ですね。
|
18
|
+
> ```C
|
19
|
+
for(i = 0; i < sizeof(str); i++) {
|
20
|
+
> ```
|
21
|
+
|
22
|
+
sizeof ではなく strlen を使うべき場面かと。
|
2
追記
answer
CHANGED
@@ -9,4 +9,6 @@
|
|
9
9
|
scanf関数の第二引数以降は、アドレスでなくてはいけません。ここでは`&n`を渡してください。
|
10
10
|
> ```C
|
11
11
|
scanf("%c",n);
|
12
|
-
> ```
|
12
|
+
> ```
|
13
|
+
|
14
|
+
scanf を捨て、fgets を利用するのも賢明です。とりわけ文字列を入力する場合は。
|
1
修正
answer
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
-
バッファに改行文字が残って
|
1
|
+
文字列を入力する際、バッファに改行文字が残ってしまうのが原因です。
|
2
|
-
次のように書けば、
|
2
|
+
次のように書けば、改行文字を捨てることができます。
|
3
3
|
```C
|
4
|
-
printf("
|
4
|
+
printf("文字列を入力してください\n");
|
5
|
-
scanf("%*c
|
5
|
+
scanf("%s%*c", str);
|
6
6
|
```
|
7
7
|
|
8
|
+
また、次の部分もおかしいです。
|
8
|
-
第二引数
|
9
|
+
scanf関数の第二引数以降は、アドレスでなくてはいけません。ここでは`&n`を渡してください。
|
10
|
+
> ```C
|
11
|
+
scanf("%c",n);
|
12
|
+
> ```
|