无法将字符串分配给数组

时间:2015-03-18 15:32:01

标签: c

我需要创建一个结构,其成员是一个字符数组,如下所示:

struct Person{
    char name [100];

};

为什么以下导致不兼容的类型错误?以及如何解决它?

struct Person john;
john.name = "John"; 

上面的任务和下面的任务之间有什么区别,这很有效:

char str[100] = "this is a string";

2 个答案:

答案 0 :(得分:1)

john.name = "John";是一项任务(在这种情况下不可能),而

char str[100] = "this is a string";  

是初始化的定义。

john.name = "John";是C中的无效语句,因为数组不能是=运算符的左操作数。您需要strcpystrncpy来复制字符串。

答案 1 :(得分:0)

C不允许您将赋值运算符与数组一起使用。有一个特殊的规定允许您使用字符串文字初始化数组:

struct Person john = {"John"};