gpt4 book ai didi

在 C 中将字符串转换为 struct tm

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:26 25 4
gpt4 key购买 nike

我正在尝试将字符串转换为 struct tm。下面是我的代码....我在编译时收到此错误,但我不确定如何/如何更改周围的行以使其工作。

v245-2% g++ prog1.cprog1.c:在函数 char* calcage(char**, char**)' 中:
prog1.c:143: 错误:无法在赋值中将
char*' 转换为 `tm*'

char* calcage(char **individual, char **age)
{
time_t time_raw_format;
struct tm * time_struct;
char *birthday = (char *)malloc(50*sizeof(char));
struct tm * birthparse;
struct tm * birth_struct;

char buf [100];

time ( &time_raw_format );
time_struct = localtime ( &time_raw_format );

strftime (buf,100,"It is: %m/%d/%Y.",time_struct);
puts (buf);

printf("person: %s\n", *individual);

birthday = strrchr(*individual, ',');
birthday++;

printf("Birthday: %s\n", birthday);

birthparse = strptime(birthday, "%D", birth_struct);
}

最佳答案

除了我在评论中提出的问题之外,您收到错误的原因是 strptime返回 char *,而不是 struct tm *,因此对 birthparse 的赋值是无效的。

birth_struct 应声明为普通结构,而不是指向结构的指针,并且您应将 birth_struct 的地址提供给 strptime ,例如

struct tm birth_struct;

// ...

strptime(birthday, "%D", &birth_struct);

如果解析不成功,strptime返回NULL,否则返回最后解析的字符地址。

关于在 C 中将字符串转换为 struct tm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565916/

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