我有一个整数,说002345,我希望将其拆分为Hours = 00 Mins = 23 Sec = 45。我尝试使用“ /”和“%”公式方法,但由于前两项为00,因此无法解决还有其他方法。你们中的任何人都可以向我提供代码。
谢谢

最佳答案

由于您不要求使用“ /”和“%”的常规方法。
然后,您可以将整数时间转换为字符串,并去除小时,分钟,秒。

但是将时间存储为简单整数不是一个好主意,因为您会错过数小时的前导零。因此,最好为此使用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()将小时,分钟,秒转换为整数;

10-06 14:02