字符数组赋值的问题

sz0802 2009-01-05 10:21:03
char formatbuf[256];
...................//代码
formatbuf="选择MF错误:";
提示错误:error C2440: '=' : cannot convert from 'char [12]' to 'char [256]'
各位,这个该如何赋值呢?
...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
neu_dfh 2009-01-05
  • 打赏
  • 举报
回复
因为“”这是字符串常量,你不能formatbuf="选择MF错误:";
你可以char formatbuf[256]="选择MF错误:";
即定义时直接赋值,或者用指针
char *formatbuf="选择MF错误:";
或者char *formatbuf;
formatbuf="选择MF错误:";
这是对的。
对于字符数组赋值,你只能一个一个的赋
a[1]='';a[2]='';
或者用字符串函数头文件include<string.h>
strncoy(formatbuf,"选择MF错误:",sizeof(formatbuf));
strcpy(formatbuf,"选择MF错误:");
neu_dfh 2009-01-05
  • 打赏
  • 举报
回复
因为“”这是字符串常量,你不能formatbuf="选择MF错误:";
你可以char formatbuf[256]="选择MF错误:";
即定义时直接赋值,或者用指针
char *formatbuf="选择MF错误:";
或者char *formatbuf;
formatbuf="选择MF错误:";
这是对的。
对于字符数组赋值,你只能一个一个的赋
a[1]='';a[2]='';
killbug2004 2009-01-05
  • 打赏
  • 举报
回复
数组元素可以在声明时整体初始化,但不能整体一次性赋值,赋值时要一个一个元素处理
waizqfor 2009-01-05
  • 打赏
  • 举报
回复
第一种 strcpy
第二种 char formatbuf[256]="XXXXXXXX";
Aaronico 2009-01-05
  • 打赏
  • 举报
回复
/* strcpy example */
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
/*
str1: Sample string
str2: Sample string
str3: copy successful
*/
/* memcpy example */
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
memcpy (str2,str1,strlen(str1)+1);
memcpy (str3,"copy successful",16);
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
/*
str1: Sample string
str2: Sample string
str3: copy successful
*/
liyudefly 2009-01-05
  • 打赏
  • 举报
回复
char formatbuf[256];
...................//代码
formatbuf="选择MF错误:"; //这里是"选择MF错误:"这个字符串的地址,这个字符串已经保存在常量区,formatbuf是数组名,也是一个地址常量,不能被修改,只能改这个地址所指的内存单元的值,所以用字符串copy命令或内存copy命令。
lbh2001 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 sz0802 的帖子:]
char formatbuf[256];
...................//代码
formatbuf="选择MF错误:";
提示错误:error C2440: '=' : cannot convert from 'char [12]' to 'char [256]'
各位,这个该如何赋值呢?
[/Quote]

数组名是常量,不能赋值

strncoy(formatbuf,"选择MF错误:",sizeof(formatbuf));
Aaronico 2009-01-05
  • 打赏
  • 举报
回复
strcpy
memcpy
ouyh12345 2009-01-05
  • 打赏
  • 举报
回复
strcpy

69,373

社区成员

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

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