#include<stdio.h>
struct month{
char name[20];
char shor[20];
int day;
int num;
};
int main(){
struct month year[13];
char dd[20][20]={"January","February","March","April","June","July","August","September","October","November","December"};
char *cc[20]={"Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
int i, j;
for(i=1;i<=12;i++){
year[i].day=30;
year[i].num=i;
year[i].shor=*cc[i-1];
year[i].name=dd[i-1][20];
}
for(j=1;j<=12;j++){
printf("%s,%s,%d,%d\n",year[j].name,year[j].shor,year[j].num,year[j].day);
}
return 0;
}
报错信息(Dev-c++5.11)
In function 'main':
16 15 [Error] assignment to expression with array type
17 15 [Error] assignment to expression with array type
用strcpy
(什么小天才,怎么十二个月的简称你就写了十一个,,五月怎么被吃了)
有帮助望采纳
#include <stdio.h>
#include <string.h>
struct month
{
char name[20];
char shor[20];
int day;
int num;
};
int main()
{
struct month year[13];
char dd[20][20] = {"January", "February", "March", "April", "June", "July", "August", "September", "October", "November", "December"};
char *cc[20] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
int i, j;
for (i = 1; i <= 12; i++)
{
year[i].day = 30;
year[i].num = i;
// year[i].shor = *(cc[i - 1]);
strcpy(year[i].shor, cc[i - 1]);
// year[i].name = dd[i - 1][20];
strcpy(year[i].name, dd[i - 1]);
}
for (j = 1; j <= 12; j++)
{
printf("%s,%s,%d,%d\n", year[j].name, year[j].shor, year[j].num, year[j].day);
}
return 0;
}
数组不能直接给数组赋值
指针也不能直接给数组赋值
在这个地方可以使用strcpy()/strncpy这个函数把一个地址上的数据复制到另一个地址上去
#include <string.h>
char *strcpy(char *dest, const char *src);
用法:把src这个地址的地址的字符串赋值到dest这个地址去
char *strncpy(char *dest, const char *src, size_t n);
用法:把src这个地址的地址的n个字符串赋值到dest这个地址去