テストデータを「ちょいとCかなんかで作ってよ」といわれて焦っています
昔ちょっと触っただけなのに
早速詰まってしまいました、ご教授ください

ABCDEFG00001
ABCDEFG00002
:
ABCDEFG10000
と末尾の数字だけカウントアップさせたファイルをたくさん作りたいのですが

char *msg = "ABCDEFG"
char *str = "00000";

for (short i = 1; i < 1001; i++) {
  str = (char *)i;
  char * strcat(msg, str)
  <msgの内容をファイルに書き出し>
}

みたいなのを書いたのですが、これだと
i<10000のときに桁数が減ってしまいます。
例えば i = 500のときはstrは "500" じゃなくて "00500"
としたいのですが方法ありますでしょうか。