コマンド文字列を生成する場合等において、制御コードを文字列変数に設定したいことがあります。
このような場合、配列の要素に1つずつ設定していくこともできますが、この方法ではコマンドが長くなるとステップ数が多くなり見難くなるという問題があります。
そこで、sprintf()関数を使って、一括で文字列を作成する方法について説明します。
コマンド文字列を生成する多くの場合、0x00のような制御コードが文字列に含まれているため、注意が必要となります。
sprintf()関数で制御コードを書き出す場合は、書式指定に"%c"を設定し、0x00のように文字コードを設定して下さい。

以下、サンプルコード。

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]){
char dest[6];

//制御コードを設定
sprintf(dest, "%c%c%c%c%c", 0x00, 0x01, 0x02, 0x03, 0x04);

//文字列の先頭が0x00なので、これだと何も出力されない
printf("dest = [%s]\n", dest);
//1文字ずつ出力する
for(int idx=0; idx<6; idx++){
printf("dest[%d] = [ %c ](0x%02X)\n", idx, dest[idx], dest[idx]);
}
printf("End\n");
return 0;
}

【補足】
・"%x"は、10進を16進化した文字列を出力するため、以下のように記載すると0という文字がdestに設定されます。
 sprintf(dest, "%x", 0x00);
 ※制御コードを出力する方法とは異なりますので、ご注意下さい。