如何从用户那里获取输入作为 C 中的整数数组?

How to get an input from user as an integers array in C?

我是 C 的新手,目前正在 edx.org 的 CS50 课程中学习它(此任务不是来自 CS50 课程)。

我编写的程序要求用户输入出生日期,然后根据系统日期计算当前年龄。

现在我通过这种方式从用户那里获取值(GetInt()GetString() 是来自 cs50.h header 和库的函数)。

// Ask user for his name, and date of birth

printf("Enter your name: ");
char* name = GetString();

printf("Enter your day of birth: ");
int birth_day = GetInt();

printf("Enter your month of birth: ");
int birth_month = GetInt();

printf("Enter your year of birth: ");
int birth_year = GetInt();

但我不想询问用户 3 次以获得他可以作为一行输入的日期 - 例如 18.06.1985。

所以问题是 - 如何以 DD.MM.YYYY 格式从用户那里获取输入,然后将其存储在整数数组中,如 [0, 1, 2],这样我就可以访问这些以后分别取值?

创建一个结构来获取:

typedef struct {
    int day;
    int month;
    int year;
} birthDay;

当你要询问用户时,你可以这样做:

int day, month, year;
printf("Type your birthday (day month year): ");
scanf("%d %d %d", &day, &month, &year);

现在,您可以正确设置结构了。

birthday bday;
bday.day = day;
bday.month = month;
bday.year = year;

您可以执行以下操作:

int array[3];
scanf("%d.%d.%d", &array[0], &array[1], &array[2]);

输入 18.06.1990,array[0] 将包含 18,array[1] 将包含 6,array[2] 将包含 1990。