Вы должны определить temp_str
как массив char
как минимум с LONGEST
элементами, и вы можете использовать ту же строку формата, что и для printf
.
Обратите внимание, что ваша строка форматадолжно быть "%02d:%02d:%02d"
для получения 2 цифр для каждого поля даже для значений ниже 10
.
Вот модифицированная версия:
#include <stdio.h>
#define LONGEST 60
int main() {
int sec, h, m, s, d, temp;
char temp_str[LONGEST];
int test = 2835656;
d = test / 86400; //divide the number of seconds by the number of seconds in a day
if (d < 100) {
temp = test % 86400;
temp /= 60; // discard the seconds
h = temp / 60; // to get "hour"
m = temp % 60; // to get "minute"
} else {
d = 99;
h = 23;
m = 59;
}
snprintf(temp_str, LONGEST, "DD:HH:MM:%02d:%02d:%02d\n", d, h, m); //output is DD:HH:MM:32:19:40
fputs(temp_str, stdout);
return 0;
}