我在 C 中有以下内容:
char time[8];
int hour= 5;
int minute = 4;
int second = 13;
输出应如下所示;
Output:
"05:04:13" //printf("%s",time);
snprintf()
如果有就使用,否则sprintf()
:
snprintf(time, sizeof time, "%02d:%02d:%02d", hour, minute, second);
请注意,您的缓冲区太小,您需要 2 + 2 + 2 的数字,再加上两个冒号,再加上一个终止字符。所以至少应该是char time[9];
。如果使用snprintf()
,它将正确截断并且不会导致缓冲区溢出,但sprintf()
会失败。
您可以使用:
sprintf(time, "%02d:%02d:%02d", hour, minute, second);
printf("%s",time);
只是通过转换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);
但只是为了说明这个功能是is not defined in ANSI-C and is not part of C++, but is supported by some compilers.