回答編集履歴

3

追記

2018/10/31 15:39

投稿

LouiS0616
LouiS0616

スコア35660

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

追記

2018/10/31 15:39

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -21,3 +21,7 @@
21
21
  scanf("%c",n);
22
22
 
23
23
  > ```
24
+
25
+
26
+
27
+ scanf を捨て、fgets を利用するのも賢明です。とりわけ文字列を入力する場合は。

1

修正

2018/10/31 15:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,15 +1,23 @@
1
- バッファに改行文字が残っているのが原因です。
1
+ 文字列を入力する際、バッファに改行文字が残ってしまうのが原因です。
2
2
 
3
- 次のように書けば、最初の文字(ここでは改行文字)を捨てることができます。
3
+ 次のように書けば、改行文字を捨てることができます。
4
4
 
5
5
  ```C
6
6
 
7
- printf("検索したい文字を入力してください\n");
7
+ printf("文字を入力してください\n");
8
8
 
9
- scanf("%*c%c", &n);
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
+ > ```