结构体赋值

justicesun 2008-05-08 04:32:18


struct msgform{
long mtype;
char mtext[1030];
};

struct msgform msg;

char str[1030]="abcde";

(&msg)->mtext=str; //这句错了,怎么改啊? 谢谢


...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoc10 2008-05-08
  • 打赏
  • 举报
回复
memcpy也可以。
liyuzhu_1984 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brookmill 的回复:]
strcpy(msg.mtext, str);
[/Quote]

(&msg)->mtext=str; 这个语句本身就有问题 当msg是指针的时候才能用-〉
如果就是一个结构体变量 和他的成员变量之间用“.”
  • 打赏
  • 举报
回复
strcpy(msg.mtext, str);
strcpy(msg->mtext, str);

整个字符串复制一般使用strcpy()
strcpy
语法:

#include <string.h>
char *strcpy( char *to, const char *from );

功能:复制字符串from 中的字符到字符串to,包括空值结束符。返回值为指针to。
Yun0825 2008-05-08
  • 打赏
  • 举报
回复
相当于
char a[5],b[5]="abc";
a=b; //数组名是个常量,可赋值号左边不能为常量啊
独孤过儿 2008-05-08
  • 打赏
  • 举报
回复
C/C++内置的字符串赋值必须用函数来实现,不支持直接的=赋值的...

PS:又见福原爱...
chenzhp 2008-05-08
  • 打赏
  • 举报
回复
char mtext[1030];是一个数组,不能够直接赋值修改。
应该使用strcpy(msg.mtext, str);
wbyhzh1111 2008-05-08
  • 打赏
  • 举报
回复
路过学习
Soulic 2008-05-08
  • 打赏
  • 举报
回复
对于字符串赋值要用strcpy或者是strncpy函数来实现
strcpy(msg.mtext,str);或者是strncpy(msg.next,str,strlen(str))
brookmill 2008-05-08
  • 打赏
  • 举报
回复
strcpy(msg.mtext, str);

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧