回答編集履歴

5

追記

2019/02/20 14:56

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
  - カウンタiの宣言はfor文の初期化部で良いでしょう。 `for(int i = 0; ...`
36
36
 
37
+ - コマンドライン引数が与えられなかったときのチェックを入れた方が良いです。
38
+
37
39
  - そのほか、コンパイラが警告を吐く箇所がいくつかあります。
38
40
 
39
41
  ・ カウンタの型

4

追記

2019/02/20 14:56

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -36,6 +36,12 @@
36
36
 
37
37
  - そのほか、コンパイラが警告を吐く箇所がいくつかあります。
38
38
 
39
+ ・ カウンタの型
40
+
41
+ ・ 非明示的なmain関数の返り値の型
42
+
43
+ ・ main関数の返り値の不足
44
+
39
45
 
40
46
 
41
47
  コードの書き方について

3

修正

2019/02/20 14:55

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  7 | for(i = 0;i<strlen[str];i++){
16
16
 
17
- |
17
+ | ^
18
18
 
19
19
  ```
20
20
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  - 文字が'a'あるいは'A'のときの処理を決めておく必要があります。
34
34
 
35
- - カウンタiの宣言はfor文の初期化部で良いでしょう。
35
+ - カウンタiの宣言はfor文の初期化部で良いでしょう。 `for(int i = 0; ...`
36
36
 
37
37
  - そのほか、コンパイラが警告を吐く箇所がいくつかあります。
38
38
 

2

追記

2019/02/20 14:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -21,3 +21,29 @@
21
21
 
22
22
 
23
23
  問題の箇所が歴然と示されていますが、似たような警告はでませんでしたか。
24
+
25
+
26
+
27
+ その他
28
+
29
+ ---
30
+
31
+ - 大文字/小文字の判定には、isupper/islower関数が便利です。
32
+
33
+ - 文字が'a'あるいは'A'のときの処理を決めておく必要があります。
34
+
35
+ - カウンタiの宣言はfor文の初期化部で良いでしょう。
36
+
37
+ - そのほか、コンパイラが警告を吐く箇所がいくつかあります。
38
+
39
+
40
+
41
+ コードの書き方について
42
+
43
+ ---
44
+
45
+ teratailには、コードを見やすく表示する機能があります。
46
+
47
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押して下さい。
48
+
49
+ ![C](4c6e48a3bd0707d89f61b901fd1f8915.gif)

1

追記

2019/02/20 14:52

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1 +1,23 @@
1
1
  strlen[str] ⇒ strlen(str) では?
2
+
3
+
4
+
5
+ ---
6
+
7
+ 例えばgccで警告オプションをオンにしてコンパイルすると、次のようなメッセージが表示されます。
8
+
9
+ ```
10
+
11
+ prog.c: In function 'main':
12
+
13
+ prog.c:7:23: error: array subscript is not an integer
14
+
15
+ 7 | for(i = 0;i<strlen[str];i++){
16
+
17
+ |
18
+
19
+ ```
20
+
21
+
22
+
23
+ 問題の箇所が歴然と示されていますが、似たような警告はでませんでしたか。