回答編集履歴
2
誤字修正
    
        answer	
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            解決したコードというのを見ました。
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            私のコードはコピペはされていました、利用されていません。
         
     | 
| 
      
 6 
     | 
    
         
            +
            私のコードはコピペはされていましたが、利用されていません。
         
     | 
| 
       7 
7 
     | 
    
         
             
            関数 drawMemo は呼び出されもしていません。
         
     | 
| 
       8 
8 
     | 
    
         
             
            ユーザからの入力があるたびに毎回 readMemo と findMemo が
         
     | 
| 
       9 
9 
     | 
    
         
             
            呼び出されていますが、検索結果は全く利用されていません。
         
     | 
| 
         @@ -112,7 +112,7 @@ 
     | 
|
| 
       112 
112 
     | 
    
         
             
                SetGraphMode(1500, 780, 32);        // ウィンドウの大きさを指定
         
     | 
| 
       113 
113 
     | 
    
         
             
                ChangeWindowMode(TRUE);             // 全画面ではなくウインドウを使用
         
     | 
| 
       114 
114 
     | 
    
         
             
                if (DxLib_Init() == -1) return -1;  // DXライブラリの初期化
         
     | 
| 
       115 
     | 
    
         
            -
                SetFontSize(33);                    // サイズの変更
         
     | 
| 
      
 115 
     | 
    
         
            +
                SetFontSize(33);                    // フォントサイズの変更
         
     | 
| 
       116 
116 
     | 
    
         
             
                SetDrawScreen(DX_SCREEN_BACK);      // 描画先を裏にする
         
     | 
| 
       117 
117 
     | 
    
         
             
                int InputHandle = MakeKeyInput(150, FALSE, FALSE, FALSE);
         
     | 
| 
       118 
118 
     | 
    
         
             
                SetActiveKeyInput(InputHandle); // 作成したキー入力ハンドルをアクティブにする
         
     | 
| 
         @@ -212,7 +212,7 @@ 
     | 
|
| 
       212 
212 
     | 
    
         
             
                return 0;
         
     | 
| 
       213 
213 
     | 
    
         
             
            }
         
     | 
| 
       214 
214 
     | 
    
         
             
            ```
         
     | 
| 
       215 
     | 
    
         
            -
            **追記*
         
     | 
| 
      
 215 
     | 
    
         
            +
            **追記**
         
     | 
| 
       216 
216 
     | 
    
         
             
            基礎の基礎が分かっていないんですね。
         
     | 
| 
       217 
217 
     | 
    
         | 
| 
       218 
218 
     | 
    
         
             
            長さ3 の文字列 "abc" は { 'a', 'b', 'c', '\0' } の 4バイト。
         
     | 
1
文字列の比較の説明を追加
    
        answer	
    CHANGED
    
    | 
         @@ -211,4 +211,56 @@ 
     | 
|
| 
       211 
211 
     | 
    
         
             
                DxLib_End(); // DXライブラリの使用終了
         
     | 
| 
       212 
212 
     | 
    
         
             
                return 0;
         
     | 
| 
       213 
213 
     | 
    
         
             
            }
         
     | 
| 
       214 
     | 
    
         
            -
            ```
         
     | 
| 
      
 214 
     | 
    
         
            +
            ```
         
     | 
| 
      
 215 
     | 
    
         
            +
            **追記*
         
     | 
| 
      
 216 
     | 
    
         
            +
            基礎の基礎が分かっていないんですね。
         
     | 
| 
      
 217 
     | 
    
         
            +
             
     | 
| 
      
 218 
     | 
    
         
            +
            長さ3 の文字列 "abc" は { 'a', 'b', 'c', '\0' } の 4バイト。
         
     | 
| 
      
 219 
     | 
    
         
            +
            長さ1 の文字列 "a" は { 'a', '\0' } の 2バイト。
         
     | 
| 
      
 220 
     | 
    
         
            +
            長さ0 の文字列 "" は { '\0' } の 1バイト。
         
     | 
| 
      
 221 
     | 
    
         
            +
            "\0" は { '\0', '\0' } の 2バイト。でも strlen("\0") は 0文字。
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
            次に、文字列の比較は == では出来ません。
         
     | 
| 
      
 224 
     | 
    
         
            +
            if (buffer == "abc") はダメで、
         
     | 
| 
      
 225 
     | 
    
         
            +
            if (strcmp(buffer, "abc") == 0) と書きます。
         
     | 
| 
      
 226 
     | 
    
         
            +
             
     | 
| 
      
 227 
     | 
    
         
            +
            buffer が空(0文字)というのは、buffer[0] が '\0' ということ。
         
     | 
| 
      
 228 
     | 
    
         
            +
            if (buffer[0] == '\0') で調べることができます。
         
     | 
| 
      
 229 
     | 
    
         
            +
            if (strlen(buffer) == 0) や if (strcmp(buffer, "") == 0) でも
         
     | 
| 
      
 230 
     | 
    
         
            +
            分かりますが、関数を呼び出すのは無駄です。
         
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
            こんなことも理解していなくて、アプリを作ろうとよく思いますね。
         
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
      
 234 
     | 
    
         
            +
            さて、buffer が空の時、if (strstr(buffer2, buffer)) が真になりますから
         
     | 
| 
      
 235 
     | 
    
         
            +
            その先には行きません。その前に調べないといけないでしょう。
         
     | 
| 
      
 236 
     | 
    
         
            +
            ```diff
         
     | 
| 
      
 237 
     | 
    
         
            +
                                         }
         
     | 
| 
      
 238 
     | 
    
         
            +
                                     }
         
     | 
| 
      
 239 
     | 
    
         
            +
                                 }
         
     | 
| 
      
 240 
     | 
    
         
            +
            -					if (strstr(buffer2, buffer)) {
         
     | 
| 
      
 241 
     | 
    
         
            +
            +					if (buffer[0] == '\0') {
         
     | 
| 
      
 242 
     | 
    
         
            +
            +						hyouzi = 0;
         
     | 
| 
      
 243 
     | 
    
         
            +
            +					}
         
     | 
| 
      
 244 
     | 
    
         
            +
            +					else if (strstr(buffer2, buffer)) {
         
     | 
| 
      
 245 
     | 
    
         
            +
                                     hyouzi = 1;
         
     | 
| 
      
 246 
     | 
    
         
            +
                                     break;
         
     | 
| 
      
 247 
     | 
    
         
            +
                                 }
         
     | 
| 
      
 248 
     | 
    
         
            +
            ```
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
      
 250 
     | 
    
         
            +
            ところで、どのような動作を期待しているのでしょうか?
         
     | 
| 
      
 251 
     | 
    
         
            +
            次のような操作で、memo.txt に追加できることは確認できたのですが、
         
     | 
| 
      
 252 
     | 
    
         
            +
            本当にこのような動作を期待しているのでしょうか?
         
     | 
| 
      
 253 
     | 
    
         
            +
             
     | 
| 
      
 254 
     | 
    
         
            +
            空の memo.txt を用意して、プログラムを起動します。
         
     | 
| 
      
 255 
     | 
    
         
            +
             
     | 
| 
      
 256 
     | 
    
         
            +
            「覚えて」エンター
         
     | 
| 
      
 257 
     | 
    
         
            +
            「→ジュニーは戦場へ行くという映画は面白い。」エンター
         
     | 
| 
      
 258 
     | 
    
         
            +
            「覚えて」エンター
         
     | 
| 
      
 259 
     | 
    
         
            +
            「→明日は晴れ。」エンター
         
     | 
| 
      
 260 
     | 
    
         
            +
            「覚えて」エンター
         
     | 
| 
      
 261 
     | 
    
         
            +
            「→どすこいはお相撲。」エンター
         
     | 
| 
      
 262 
     | 
    
         
            +
            「晴れ」エンター
         
     | 
| 
      
 263 
     | 
    
         
            +
             
     | 
| 
      
 264 
     | 
    
         
            +
            「buffer2 = →明日は晴れ。」と表示される。
         
     | 
| 
      
 265 
     | 
    
         
            +
            memo.txt には、入力文字列が追加されている。
         
     | 
| 
      
 266 
     | 
    
         
            +
            「→」がないと追加されません。
         
     |