私は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、さらにコロンにはさらに 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.