gpt4 book ai didi

c - 获取日期并将其保存在结构体 C 中

转载 作者:行者123 更新时间:2023-11-30 21:27:42 25 4
gpt4 key购买 nike

我有这样的东西:

void set_email_date()
{
time_t t = time(NULL);
struct tm tm = *localtime(&t);
strcpy(email.date, tm.tm_mday"-"tm.tm_month+1"-"tm.tm_year +1900);
}

我知道这是非常错误的,但我尝试了 1000 种不同的想法,但没有一个奏效。我想按照这个结构dd-mm-yyyy存储它。

最佳答案

tm.tm_mday"-"tm.tm_month+1"-"tm.tm_year +1900

这不是创建字符串的方式。

char date[100];
sprintf(date, "%02d-%02d-%d\n", tm.tm_day, tm.tm_mon + 1, tm.tm_year + 1900);
strcpy(email.date, date);

这只有在 email.date 时才有效。是一个具有足够空间的数组,或者如果您已经用 malloc 动态分配了内存& friend 们。没有看看你是如何做到的,这只是一个猜测。

但您也可以使用strftime设置日期格式。

man strftime

#include <time.h>

size_t strftime(char *s, size_t max, const char *format,
const struct tm *tm);

DESCRIPTION

The strftime() function formats the broken-down time tm according to the format specification format and places the result in the character array s of size max. The broken-down time structure tm is defined in <time.h>. See also ctime(3).

因为我们不知道你是如何初始化的email.date这是它的类型,我假设是 char[20]或其他什么。

strftime(email.date, sizeof email.date, "%d-%m-%Y", &tm);

关于c - 获取日期并将其保存在结构体 C 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com