Поддерживаю, sprintf + использовать строку в качестве форматной, что-то вроде:
char *TextErr[]={
 "ошибка самодиагностики",
 "ошибка при передаче бегущей  '%d' разряд   ",
 "ошибка при передаче бегущего '%d' разряд   "};
char message[256];
sprintf(message, TextErr[1], 4); // message == "ошибка при передаче бегущей  '4' разряд   "
(за точность кода не ручаюсь, пример из головы - см. справку по sprintf, + нужно помнить о размере буфера, чтоб не переполнить - или, в случае MS, использовать sprintf_s)