C语言的结构体的赋值问题

#include<stdio.h>

struct BOOK
{
const char *id;
const char name;
int price;
};
int main()
{
BOOK book;
book.id="1927502011";
book.name="一千零一夜";
book.price=19;
printf("编号:%s\n书名:%s\n价格:%d\n",book.id,book.name,book.price);
return 0;
}
为什么?我对id和name两个成员进行赋值,原来的类型是char编译器报错,告诉我必须使用const char * 才行。我用strcpy函数去赋值的时候编译器又告诉我 得使用char

有没有人能给我解答

你这个定义法不太合适。建议改为char id[20]这种形式,结构体内指定数组大小。然后strcpy(book.id,"1927502011");这样子