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