>>422
char filename_old[256]; // 元ファイル名
char filename_new[256]; // _ts付のファイル名
char *p;


p = strrchr(filename_old, '.');
if (p) {
int pos = p - filename_old;
memcpy(filename_new, filename_old, pos);
filename_new[pos] = 0;
strcat(filename_new, "_ts");
strcat(filename_new, p);
}

ファイル名にアスキーコード以外が使われていると使用できない。
ディレクトリを含むパスの場合は想定していない。
動作確認をしていないのでバグってるかもしれない。