次のコードを使用して、HTML ファイルを配列にコピーしました。
fseek(board, 0, SEEK_END);
long int size = ftell(board);
rewind(board);
char *sourcecode = calloc(size+1, sizeof(char));
fread(sourcecode, 1, size, board);
ここでの目標は、配列内の特定のコメントを、既に定義されている文字列 'king' に置き換えることです。例えば
< html コード>< !comment>< その他の html コード>
に
< html code>キング< more html code>
次のコードを使用しています:
find_pointer = strstr(sourcecode, text2find);
strcpy(find_pointer, king);
printf("%s", sourcecode);
where text2find = "< !comment>";
ただし、印刷すると、「王」を過ぎたすべての文字が消去されていることが明らかです..終了文字が自動的に追加されたかのように。< more html code> がそのまま残るようにするには、どうすればこれを修正できますか?
EDIT::::: strncpy を使用し、終端文字が追加されないように文字数を設定しました。これは最良の方法ですか?