我是C编程的新手并且有一个问题。它是一个简单的程序,但不知道它为什么会出现这样的编译错误。
#include<stdio.h>
#include<conio.h>
struct Book
{
char book_name[20];
char auther[20];
int book_id;
};
void main()
{
struct Book b1;
clrscr();
b1.book_name="c++";
b1.auther="xyz";
/* Above two line show compile time error Lvalue required */
b1.book_id=1002;
printf("\n Book Name= %s",b1.book_name);
printf("\n Book Auther= %s",b1.auther);
printf("\n Book ID= %s",b1.book_id);
getch();
}
答案 0 :(得分:2)
C不允许从字符串("c++"
)到char数组(book_name
)的赋值。相反,您需要复制内容:
strcpy(b1.book_name, "c++");
当然,这假设book_name
足够大以包含内容。您可以查看strncpy()
以防止在您熟悉上述内容后覆盖缓冲区。