关于这个字符串的定义,在运行时有警告,您能告诉我一下是为什么吗?

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:22:18
char k[5];
struct student a[30],temp;
switch(ke)
{
case 1:k[5]="语文";break;
case 2:k[5]="数学";break;
case 3:k[5]="英语";break;
case 4:k[5]="物理";break;
case 5:k[5]="化学";break;
}

一、
当char k[5];这样的定义之后,k[5]的类型是char--单个的字符,k[5]="数学";的语句就是错的,类型不对,只能这样:k[5]='A';单个的字符。

二、
如果需要k[5]="语文";那么k至少要定义为[6],而且类型必需是字符串,而且字符串复制只能使用strcpy函数。

三、
我看你的程序,应该是把k当初一个字符串,那么char k[5];的定义是对的,但是赋值语句有错:
k[5]="语文";
应该修改为:
strcpy(k,"语文");