gpt4 book ai didi

c - 如何使用结构成员打印星期几?

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

我想在此程序中打印星期几,但它不起作用,我该怎么做才能解决它?

#include<stdio.h>
struct month{
int date[12];
char day[7];
}mon;
main()
{ int i;

strcpy(mon.day[0],"Sunday");
strcpy(mon.day[1],"Monday");
strcpy(mon.day[2],"Tuesday");
strcpy(mon.day[3],"Wednesday");
strcpy(mon.day[4],"Thursday");
strcpy(mon.day[5],"Friday");
strcpy(mon.day[6],"Saturday");

for(i=0;i<7;i++)
{
printf("Day %d is %c\n",i+1,mon.day[i]);
}

}

最佳答案

您正在尝试将字符串存储在 char 中。但是,字符串是 char 的数组。而不是这个:

char day[7];

你需要这样的东西:

char day[7][16];

现在您有 16 个 char 适合一个工作日,您有七次,每天一次。另外,你的打印错误。要打印字符串,您需要 %s,而不是 %c%c 仅用于一个字符:

printf("Day %d is %s\n", i + 1, mon.day[i]);

另一种方法是使用 char* 数组而不是 char 并且只存储字符串的地址而不是复制字符串:

char *day[7];

然后像这样存储地址:

mon.day[0] = "Sunday";
mon.day[1] = "Monday";
mon.day[2] = "Tuesday";
...

并以同样的方式打印,使用%s

关于c - 如何使用结构成员打印星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55018490/

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