首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将常量字符更改为字符时出现C2440错误

尝试将常量字符更改为字符时出现C2440错误
EN

Stack Overflow用户
提问于 2011-11-02 04:44:16
回答 2查看 124关注 0票数 0

好的,它是hw的一部分,我不能使用字符串来解决我的问题。我有点卡住了,因为我需要使用这些字符数组。关于如何解决这个问题,有什么建议吗?

代码语言:javascript
复制
int main()
{
struct structure
{
   char name[15];
};

structure ObrLog[2]= 
{
  {"Bambi"},
  {"Cindarella"},
};
ObrLog[1].nazwa="somethingnew"; //error here
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-02 04:51:35

要将C字符串复制到缓冲区中,请使用memcpy。假设你指的是name而不是nazwa

代码语言:javascript
复制
char newval[] = "somethingnew";

// in a function
memcpy(ObrLog[1].name, newval, min(strlen(newval) + 1, sizeof(ObrLog[1].name));
ObrLog[1].name[14] = '\0';  // just to be sure the name is NUL-terminated

min的定义留给读者作为练习。+1用于解释newval末尾的隐式NUL。

票数 2
EN

Stack Overflow用户

发布于 2011-11-02 04:47:02

您不能像那样修改字符数组。为此,您需要使用strcpy,并且要注意缓冲区溢出。(假设输入错误为nazwa而不是name )

代码语言:javascript
复制
 strcpy(ObrLog[1].name, "somethingnew");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7972650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档