1

私はCで次のものを持っています:

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

出力は次のようになります。

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

3 に答える 3

4

snprintf()持っている場合は使用し、そうでない場合は次のようにしますsprintf()

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

バッファが小さすぎることに注意してください。数字には 2 + 2 + 2、さらにコロンにはさらに 2 つ、さらに終端には最後の文字が必要です。したがって、少なくともchar time[9];. を使用するsnprintf()と、適切に切り詰められ、バッファ オーバーランは発生しませんが、sprintf()失敗します。

于 2012-11-05T12:31:07.227 に答える
2

以下を使用できます。

sprintf(time, "%02d:%02d:%02d", hour, minute, second);
printf("%s",time);
于 2012-11-05T12:30:50.830 に答える
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);

しかし、この機能がis not defined in ANSI-C and is not part of C++, but is supported by some compilers.

于 2012-11-05T12:42:35.410 に答える