将hhmmss分成hh mm ss in c

时间:2013-06-22 07:20:54

标签: c string split integer

我有一个整数说002345我希望它被分成几小时= 00分钟= 23秒= 45.我尝试使用“/”和“%”公式方法但是自前两个术语以来它没有用完是00还有其他任何方式。你们中的任何一个人都给我一个代码。 谢谢

2 个答案:

答案 0 :(得分:0)

假设你的整数2345(因为前导零是不相关的),你可以使用:

hh = val / 10000;
mm = (val / 100) % 100;
ss = val % 100;

如果您有一个字符串(由于您的标记表明这一点,但在问题正文中没有提及它),因此您只需在每个双字符上调用类似atoistrtol的内容段。

答案 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转换为整数