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