如何在C中将用户输入作为整数数组?

时间:2016-02-06 11:19:49

标签: c arrays input scanf cs50

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

我写了一个程序,要求用户提供出生日期,然后根据系统日期计算当前年龄。

现在我以这种方式从用户那里获取值(GetInt()GetString()cs50.h标题和库中的函数。

// 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],这样我就可以单独访问这些值以后呢?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

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

在18.06.1990的输入中,数组[0]将包含18,数组[1]将包含6,数组[2]将包含1990。

答案 1 :(得分:1)

创建一个结构来获取它:

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;