如何将String分配给C中的变量

时间:2018-05-01 00:35:20

标签: c string char

我创建了一个Entity对象:

#ifndef ENTITY_H  
#define ENTITY_H  

struct MyEntityObject {  
    char  _entityAuthor;
};  

#endif // ENTITY_H  

然后我尝试设置并使用它:

struct MyEntityObject myEntityObject;  

/* MyEntityObject data specification */  
strcpy(myEntityObject . _entityAuthor, "Shakespear");  

我收到此错误:

main.cpp:37: error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]  
      myEntityObject . _entityAuthor = "Shakespear";  
                             ^

这里发生了什么?我错了什么?

2 个答案:

答案 0 :(得分:2)

您的结构字段只有一个char

struct MyEntityObject {  
    char  _entityAuthor;  
}; 

如果您可以对字符串的大小做出可靠的假设,请尝试将其更改为动态分配内存的char *char数组。

答案 1 :(得分:0)

这一行:

char _entityAuthor;

...声明char变量。

您需要的是指向charchar *)变量的 指针:

char *_entityAuthor;

在使用strcpy()之前,您还需要使用malloc() 分配内存

Here is a tutorial.