我有一个整数说 002345 我希望它被分成 Hours=00 Mins=23 Sec=45。我尝试使用“/”和“%”公式方法但它没有成功,因为前两项是 00还有其他方法。你们中的任何人都可以给我一个代码吗?谢谢你
问问题
338 次
2 回答
0
假设您的整数是2345
(因为前导零无关紧要),您可以使用:
hh = val / 10000;
mm = (val / 100) % 100;
ss = val % 100;
相反,如果您有一个字符串(不清楚,因为您的标签表明了这一点,但问题正文中没有提及它),您只需在每个两字符段上调用类似atoi
or的内容。strtol
于 2013-06-22T07:27:32.280 回答
0
由于您不要求使用“/”和“%”的传统方法。然后你可以将整数时间转换为字符串并去掉小时、分钟、秒。
但是将时间存储为简单的整数并不是一个好主意,你会错过几个小时的前导零。因此,最好为此使用 char 数组。
#include <stdio.h>
#include <string.h>
int main()
{
char hour[3]={0};
char min[3]={0};
char sec[3]={0};
int time = 2345;
char timeStr[10] = {0};
sprintf(timeStr, "%06d", time);
memcpy(hour, timeStr, 2);
memcpy(min, timeStr+2,2);
memcpy(sec, timeStr+4,2);
printf("%s:%s:%s",hour,min,sec);
}
我推荐的方式是:-
#include <stdio.h>
#include <string.h>
int main()
{
char hour[3]={0};
char min[3]={0};
char sec[3]={0};
char timeStr[] = "002345";
memcpy(hour, timeStr, 2);
memcpy(min, timeStr+2,2);
memcpy(sec, timeStr+4,2);
printf("%s:%s:%s",hour,min,sec);
}
然后使用 atoi() 将小时、分钟、秒转换为整数;
于 2013-06-22T07:40:32.350 回答