我有一个整数说002345我希望它被分成几小时= 00分钟= 23秒= 45.我尝试使用“/”和“%”公式方法但是自前两个术语以来它没有用完是00还有其他任何方式。你们中的任何一个人都给我一个代码。 谢谢
答案 0 :(得分:0)
假设你的整数是2345
(因为前导零是不相关的),你可以使用:
hh = val / 10000;
mm = (val / 100) % 100;
ss = val % 100;
如果您有一个字符串(由于您的标记表明这一点,但在问题正文中没有提及它),因此您只需在每个双字符上调用类似atoi
或strtol
的内容段。
答案 1 :(得分: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();
将hour,min,sec转换为整数