如何从整数创建时间字符串

时间:2012-11-05 12:29:44

标签: c string integer char

我在C中有以下内容:

char time[8];
int hour= 5;
int minute = 4;
int second = 13;

输出应为以下内容;

Output:
"05:04:13" //printf("%s",time);

3 个答案:

答案 0 :(得分:4)

如果有,请使用snprintf(),否则sprintf()

snprintf(time, sizeof time, "%02d:%02d:%02d", hour, minute, second);

请注意,您的缓冲区太小,数字需要两个+两个+两个,冒号需要两个,加上终止的最后一个字符。所以它至少应该是char time[9];。如果您使用snprintf(),它将正确截断并且不会导致缓冲区溢出,但sprintf()将失败。

答案 1 :(得分:2)

您可以使用:

sprintf(time, "%02d:%02d:%02d", hour, minute, second);
printf("%s",time);

答案 2 :(得分:0)

只是通过将int转换为char字符串来实现相同结果的替代(更长)方法。

int hour= 5;
int minute = 4;
int second = 13;
char hr[3];
char min[3];
char sec[3];

itoa(hour, hr, 10);
itoa(minute, min, 10);
itoa(second, sec, 10);

printf("%s:%s:%s", hr,min,sec);

但要明确this函数是is not defined in ANSI-C and is not part of C++, but is supported by some compilers.