回答編集履歴

4

未使用な変数を削除

2021/12/04 09:27

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
  int count(char *a,char *b) {
118
118
 
119
- int i, count = 0;
119
+ int count = 0;
120
120
 
121
121
  for (; *a != '\0'; a++) {
122
122
 

3

不要なループカウンタを削除

2021/12/04 09:27

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -88,7 +88,19 @@
88
88
 
89
89
  ```
90
90
 
91
- といった感じでしょうか。
91
+ といった感じでしょうか。というか `i` 使ってませんね。。
92
+
93
+
94
+
95
+ ```C
96
+
97
+ for (; *a != '\0'; a++) {
98
+
99
+ ```
100
+
101
+
102
+
103
+ で良さそうです。
92
104
 
93
105
 
94
106
 
@@ -106,17 +118,13 @@
106
118
 
107
119
  int i, count = 0;
108
120
 
109
- for (i = 0; *a != '\0'; i++) {
121
+ for (; *a != '\0'; a++) {
110
-
111
- a++; // ポインタのインクリメント
112
122
 
113
123
  count++; // 文字数のカウントアップ
114
124
 
115
125
  }
116
126
 
117
- for (i = 0; *b != '\0'; i++) {
127
+ for (; *b != '\0'; b++) {
118
-
119
- b++; // ポインタのインクリメント
120
128
 
121
129
  count++; // 文字数のカウントアップ
122
130
 

2

説明を改善

2021/12/04 09:19

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -50,13 +50,17 @@
50
50
 
51
51
 
52
52
 
53
- 1文字だけが格納できる変数に「文字列」 を代入しようとして警告が出ています。文字列として書くとしたら、以下の用になります。
53
+ 1文字だけが格納できる変数に「文字列」 を代入しようとして警告が出ています。文字列として書くとしたら、以下になります。
54
54
 
55
55
 
56
56
 
57
57
  ```C
58
58
 
59
59
  char x[] = "hello";
60
+
61
+ // 文字列の初期化は以下の方法でも可能です。「"」でなく「'」が使われていることに注意ください。
62
+
63
+ // char x[] = {'h', 'e', 'l', 'l', 'o', '\0'};
60
64
 
61
65
  ```
62
66
 

1

説明を改善

2021/12/04 09:14

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -104,17 +104,17 @@
104
104
 
105
105
  for (i = 0; *a != '\0'; i++) {
106
106
 
107
- a++;
107
+ a++; // ポインタのインクリメント
108
108
 
109
- count++;
109
+ count++; // 文字数のカウントアップ
110
110
 
111
111
  }
112
112
 
113
113
  for (i = 0; *b != '\0'; i++) {
114
114
 
115
- b++;
115
+ b++; // ポインタのインクリメント
116
116
 
117
- count++;
117
+ count++; // 文字数のカウントアップ
118
118
 
119
119
  }
120
120
 
@@ -130,6 +130,14 @@
130
130
 
131
131
  char b[] = "usa";
132
132
 
133
+ // 文字列の初期化は以下の方法でも可能です。「"」でなく「'」が使われていることに注意ください。
134
+
135
+ // char a[] = {'h', 'e', 'l', 'l', 'o', '\0'};
136
+
137
+ // char b[] = {'u', 's', 'a', '\0'};
138
+
139
+
140
+
133
141
  int mojisuu = count(a, b);
134
142
 
135
143
  printf("mojisuu=%d\n", mojisuu);