【发布时间】:2019-03-06 08:21:19
【问题描述】:
我想在这个程序中打印星期几,但它不起作用,我该怎么做才能解决它?
#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]);
}
}
【问题讨论】:
-
strcpy(mon.day[0],"Sunday");--- 问题!! -
编译器应该对你发出警告。什么是例如
mon.day[2]?它真的是一个字符串(可以用作strcpy的目的地),还是一个单个字符(就像你打印的那样)? -
printf("Day %d is %c\n",i+1,mon.day[i]); }=>printf("Day %d is %s\n",i+1,mon.day); } -
char day[7] - 它是 7 个字符。不是 7 个字符串,不是 7 个字符指针,仅此而已。只有 7 个字符(字节)。你也会溢出 strcpy 中的所有内容。
-
与您的问题无关,但请阅读例如this
mainfunction reference。您对main的声明无效。