有关C语言中日期格式问题

为什么日子前面总会有一个0,就像图中的018,怎么变成18啊?感谢解答

小魔女参考了bing和GPT部分内容调写:
在C语言中,日期的格式一般都是用8位数字表示,其中前4位表示年份,中间2位表示月份,最后2位表示日期。比如,20200801表示2020年8月1日。由于月份和日期都是两位数,所以即使月份和日期是个位数,也要在前面补0,比如2020年8月1日,就要写成20200801。

如果想要把8位数字表示的日期,改成没有前导0的形式,可以使用C语言中的字符串函数,把8位数字转换成字符串,然后再把字符串中的前导0去掉,就可以得到没有前导0的日期格式了。

具体的代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
    int date = 20200801;
    char str[9];
    sprintf(str, "%d", date);
    int len = strlen(str);
    int i;
    for(i = 0; i < len; i++)
    {
        if(str[i] == '0')
        {
            int j;
            for(j = i; j < len; j++)
            {
                str[j] = str[j+1];
            }
            len--;
        }
    }
    printf("%s\n", str);
    return 0;
}

上面的代码中,首先使用sprintf函数把8位数字转换成字符串,然后再使用一个for循环,把字符串中的前导0去掉,最后使用printf函数输出转换后的字符串,就可以得到没有前导0的日期格式了。
回答不易,记得采纳呀。