質問編集履歴
4
間違いの訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -282,6 +282,16 @@
|
|
282
282
|
|
283
283
|
```
|
284
284
|
|
285
|
-
まだ、"Bangkok"が`b:*,a:*,n:*,g:*,k:**,o:*`.となるところ
|
286
|
-
|
287
|
-
|
285
|
+
文字列によって成功するようになりましたが、まだ問題があるようです。
|
286
|
+
|
287
|
+
メッセージは
|
288
|
+
|
289
|
+
```ここに言語を入力
|
290
|
+
|
291
|
+
string_literal("Bangkok") should return "b:*,a:*,n:*,g:*,k:**,o:*", actual: "b:*,a:*,n:*,g:*,k:**,o:*,\""
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
string_literal("Dhaka") should return "d:*,h:*,a:**,k:*", actual: "d:*,h:*,a:**,k:*,"
|
296
|
+
|
297
|
+
```
|
3
間違いの訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -252,7 +252,7 @@
|
|
252
252
|
|
253
253
|
|
254
254
|
|
255
|
-
if(i != (n -1))
|
255
|
+
if(i != (n -1)) //この部分が問題?
|
256
256
|
|
257
257
|
{
|
258
258
|
|
@@ -282,4 +282,6 @@
|
|
282
282
|
|
283
283
|
```
|
284
284
|
|
285
|
-
まだ、"Bangkok"がb:*,a:*,n:*,g:*,k:**,o:*とな
|
285
|
+
まだ、"Bangkok"が`b:*,a:*,n:*,g:*,k:**,o:*`.となるところ
|
286
|
+
|
287
|
+
`b:*,a:*,n:*,g:*,k:**,o:*,` となりますね。
|
2
間違いの訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -206,7 +206,7 @@
|
|
206
206
|
|
207
207
|
{
|
208
208
|
|
209
|
-
if(city[i] == city[j])count++;
|
209
|
+
if(tolower(city[i]) == tolower(city[j]))count++;
|
210
210
|
|
211
211
|
|
212
212
|
|
@@ -216,21 +216,21 @@
|
|
216
216
|
|
217
217
|
|
218
218
|
|
219
|
-
if(i > 0)
|
219
|
+
if(i > 0)
|
220
|
-
|
220
|
+
|
221
|
-
{
|
221
|
+
{
|
222
|
-
|
222
|
+
|
223
|
-
for(int b = i - 1; b =
|
223
|
+
for(int b = i - 1; b >= 0; b--)
|
224
|
-
|
224
|
+
|
225
|
-
{
|
225
|
+
{
|
226
|
-
|
226
|
+
|
227
|
-
if(city[i] == city[b])count2++;
|
227
|
+
if(tolower(city[i]) == tolower(city[b]))count2++;
|
228
228
|
|
229
229
|
}
|
230
230
|
|
231
231
|
}
|
232
232
|
|
233
|
-
if(count2 != 0)continue;
|
233
|
+
if(count2 != 0)continue;
|
234
234
|
|
235
235
|
|
236
236
|
|
@@ -242,7 +242,7 @@
|
|
242
242
|
|
243
243
|
|
244
244
|
|
245
|
-
for(int a = 1; a <= count; a++)
|
245
|
+
for(int a = 1; a <= count; a++)
|
246
246
|
|
247
247
|
{
|
248
248
|
|
@@ -282,4 +282,4 @@
|
|
282
282
|
|
283
283
|
```
|
284
284
|
|
285
|
-
まだ、
|
285
|
+
まだ、"Bangkok"がb:*,a:*,n:*,g:*,k:**,o:*となりますね。どこがおかしいでしょうか。
|
1
間違いの訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -155,3 +155,131 @@
|
|
155
155
|
}
|
156
156
|
|
157
157
|
```
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
回答いただいたものを参考にして、少し修正してみました。
|
162
|
+
|
163
|
+
```c
|
164
|
+
|
165
|
+
#include <string.h>
|
166
|
+
|
167
|
+
#include <stdlib.h> //malloc
|
168
|
+
|
169
|
+
#include <ctype.h> // tolower
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
char* get_strings(const char *city)
|
174
|
+
|
175
|
+
{
|
176
|
+
|
177
|
+
int i, j, n;
|
178
|
+
|
179
|
+
n = strlen(city);
|
180
|
+
|
181
|
+
char *string;
|
182
|
+
|
183
|
+
string = malloc( n * 4 + 1);
|
184
|
+
|
185
|
+
char *base = string;
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
for(i = 0; i < n; i++ )
|
190
|
+
|
191
|
+
{
|
192
|
+
|
193
|
+
int c = tolower((unsigned char)city[i]);
|
194
|
+
|
195
|
+
if (!isalpha(c)) continue;
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
int count = 0;
|
200
|
+
|
201
|
+
int count2 = 0;
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
for(j = 0; j < n; j++)
|
206
|
+
|
207
|
+
{
|
208
|
+
|
209
|
+
if(city[i] == city[j])count++;
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
}
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
if(i > 0)
|
220
|
+
|
221
|
+
{
|
222
|
+
|
223
|
+
for(int b = i - 1; b == 0; b--)
|
224
|
+
|
225
|
+
{
|
226
|
+
|
227
|
+
if(city[i] == city[b])count2++;
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
}
|
232
|
+
|
233
|
+
if(count2 != 0)continue; //同じ文字が前にあればfor文の最初にもどっているつもり
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
*string++ = tolower(city[i]);
|
238
|
+
|
239
|
+
*string++ = ':';
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
for(int a = 1; a <= count; a++)//count(同じ文字があった回数)の数だけ*をつけているつもり
|
246
|
+
|
247
|
+
{
|
248
|
+
|
249
|
+
*string++ ='*';
|
250
|
+
|
251
|
+
}
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
if(i != (n -1))
|
256
|
+
|
257
|
+
{
|
258
|
+
|
259
|
+
*string++ = ',';
|
260
|
+
|
261
|
+
}
|
262
|
+
|
263
|
+
else
|
264
|
+
|
265
|
+
{
|
266
|
+
|
267
|
+
*string = '\0';
|
268
|
+
|
269
|
+
}
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
}
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
return base;
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
```
|
284
|
+
|
285
|
+
まだ、("Chicago")が`c:*,h:*,i:*,c:*,a:*,g:*,o:*`となりますね。どこがおかしいでしょうか。
|