回答編集履歴
2
誤字修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
私のコードはコピペはされていました、利用されていません。
|
11
|
+
私のコードはコピペはされていましたが、利用されていません。
|
12
12
|
|
13
13
|
関数 drawMemo は呼び出されもしていません。
|
14
14
|
|
@@ -226,7 +226,7 @@
|
|
226
226
|
|
227
227
|
if (DxLib_Init() == -1) return -1; // DXライブラリの初期化
|
228
228
|
|
229
|
-
SetFontSize(33); // サイズの変更
|
229
|
+
SetFontSize(33); // フォントサイズの変更
|
230
230
|
|
231
231
|
SetDrawScreen(DX_SCREEN_BACK); // 描画先を裏にする
|
232
232
|
|
@@ -426,7 +426,7 @@
|
|
426
426
|
|
427
427
|
```
|
428
428
|
|
429
|
-
**追記*
|
429
|
+
**追記**
|
430
430
|
|
431
431
|
基礎の基礎が分かっていないんですね。
|
432
432
|
|
1
文字列の比較の説明を追加
test
CHANGED
@@ -425,3 +425,107 @@
|
|
425
425
|
}
|
426
426
|
|
427
427
|
```
|
428
|
+
|
429
|
+
**追記*
|
430
|
+
|
431
|
+
基礎の基礎が分かっていないんですね。
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
長さ3 の文字列 "abc" は { 'a', 'b', 'c', '\0' } の 4バイト。
|
436
|
+
|
437
|
+
長さ1 の文字列 "a" は { 'a', '\0' } の 2バイト。
|
438
|
+
|
439
|
+
長さ0 の文字列 "" は { '\0' } の 1バイト。
|
440
|
+
|
441
|
+
"\0" は { '\0', '\0' } の 2バイト。でも strlen("\0") は 0文字。
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
次に、文字列の比較は == では出来ません。
|
446
|
+
|
447
|
+
if (buffer == "abc") はダメで、
|
448
|
+
|
449
|
+
if (strcmp(buffer, "abc") == 0) と書きます。
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
buffer が空(0文字)というのは、buffer[0] が '\0' ということ。
|
454
|
+
|
455
|
+
if (buffer[0] == '\0') で調べることができます。
|
456
|
+
|
457
|
+
if (strlen(buffer) == 0) や if (strcmp(buffer, "") == 0) でも
|
458
|
+
|
459
|
+
分かりますが、関数を呼び出すのは無駄です。
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
こんなことも理解していなくて、アプリを作ろうとよく思いますね。
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
さて、buffer が空の時、if (strstr(buffer2, buffer)) が真になりますから
|
468
|
+
|
469
|
+
その先には行きません。その前に調べないといけないでしょう。
|
470
|
+
|
471
|
+
```diff
|
472
|
+
|
473
|
+
}
|
474
|
+
|
475
|
+
}
|
476
|
+
|
477
|
+
}
|
478
|
+
|
479
|
+
- if (strstr(buffer2, buffer)) {
|
480
|
+
|
481
|
+
+ if (buffer[0] == '\0') {
|
482
|
+
|
483
|
+
+ hyouzi = 0;
|
484
|
+
|
485
|
+
+ }
|
486
|
+
|
487
|
+
+ else if (strstr(buffer2, buffer)) {
|
488
|
+
|
489
|
+
hyouzi = 1;
|
490
|
+
|
491
|
+
break;
|
492
|
+
|
493
|
+
}
|
494
|
+
|
495
|
+
```
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
ところで、どのような動作を期待しているのでしょうか?
|
500
|
+
|
501
|
+
次のような操作で、memo.txt に追加できることは確認できたのですが、
|
502
|
+
|
503
|
+
本当にこのような動作を期待しているのでしょうか?
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
空の memo.txt を用意して、プログラムを起動します。
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
「覚えて」エンター
|
512
|
+
|
513
|
+
「→ジュニーは戦場へ行くという映画は面白い。」エンター
|
514
|
+
|
515
|
+
「覚えて」エンター
|
516
|
+
|
517
|
+
「→明日は晴れ。」エンター
|
518
|
+
|
519
|
+
「覚えて」エンター
|
520
|
+
|
521
|
+
「→どすこいはお相撲。」エンター
|
522
|
+
|
523
|
+
「晴れ」エンター
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
「buffer2 = →明日は晴れ。」と表示される。
|
528
|
+
|
529
|
+
memo.txt には、入力文字列が追加されている。
|
530
|
+
|
531
|
+
「→」がないと追加されません。
|