gpt4 book ai didi

将日期数组转换为整数

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:02 24 4
gpt4 key购买 nike

我正在使用 C 编程语言。我目前有一个日期的二维字符数组,格式为 "2010-05-01"。我想将每个数字转换为整数数据类型,然后将它们存储在一个整数数组中。这样做的原因是因为我需要一个一维整数数组,然后我可以使用指针通过引用将其传递给函数。

请在下面查看我当前的代码:

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

int main()
{
float values[] = { //Contains 100 float literals }
int i, j, size = sizeof(values)/sizeof(*values);
char strings[][10] = {"2010-05-01", "2010-10-01" //Contains a total of 100 dates}
int dates[size * 3];

for (i = 0, j = 0; j < size; ++i, ++j) {
dates[i] = atoi(strtok(strings[j], "-"));
dates[++i] = atoi(strtok(NULL, "-"));
dates[++i] = atoi(strtok(NULL, "-"));
}

for (i = 0; i < size; ++i)
printf("%d\n", dates[i]);
return 0;
}

这段代码当前返回一个总线错误,我不明白为什么。我是一个相对初学者,如果我做了一些愚蠢的事情,我很抱歉。如有任何意见,我们将不胜感激,感谢您抽出宝贵时间。

最佳答案

要独立提取年、日和月并将它们放在同一个数组中,您可以将年、月和日放在一起(假设日期格式为 yyyy- mm-dd).这样的数组可以存储以下序列:

y1, y2, y3, m1, m2, m3, d1, d2, d3

下面的代码在数组 ymd 中做那种事情

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

#define SIZE 2

int main()
{
int i;
char strings[SIZE][11] = {"2010-05-01", "2010-10-01" };
int ymd[SIZE*3];

for (i = 0; i < SIZE; i++) {
ymd[i*3] = atoi(strtok(strings[i], "-"));
ymd[i*3+1] = atoi(strtok(NULL, "-"));
ymd[i*3+2] = atoi(strtok(NULL, "-"));
}

for (i = 0; i < SIZE; i++)
printf("%d/%d/%d\n", ymd[i*3], ymd[i*3+1], ymd[i*3+2]);
return 0;
}

输出将是:

2010/5/1
2010/10/1

关于将日期数组转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24389868/

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