“strcpy”: 不能将参数 1 从“const char *”转换为“char *”

Zsen_J 2011-07-03 01:10:51
请高人给兄弟给个解决方法啊。
...全文
1479 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony2278 2011-08-17
  • 打赏
  • 举报
回复
看需要吧,const也不是可有可无的。
kkrmr 2011-08-17
  • 打赏
  • 举报
回复
学习来了
Jokul_Lee 2011-08-17
  • 打赏
  • 举报
回复
解决方法,把const干掉
一叶之舟 2011-08-17
  • 打赏
  • 举报
回复
7楼说的很对
const意味着不能改变,这和strcpy的语义是相矛盾的。strcpy的意思就是,将第二个参数拷贝到第一个参数,如果你的第一个参数是const,这种操作肯定就会失败。所以至少第一个参数不能是const的。
君子美玉 2011-08-17
  • 打赏
  • 举报
回复
字符集的问题吧
热爱生活 2011-08-16
  • 打赏
  • 举报
回复
学习!
luciferisnotsatan 2011-08-16
  • 打赏
  • 举报
回复
ls挖坟

问啥lz的结贴率是 100%????
yanook 2011-07-04
  • 打赏
  • 举报
回复
为什么这么用?把你的需求还有代码贴上来看看。
辰岡墨竹 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhll879 的回复:]

传入的两个参数,是数组的话都是数组 ,是char*的话,都是char *
有个函数strdup好像是这样的,你查下
[/Quote]
不需要,第一个参数是char *或char数组都可以(只要不是const就行),第二个带不带const都没关系,可以是char数组或char *。char[]其实就是char *,不过反过来不行,char *指针如果没malloc分配空间或指向其它字符数组,是不能作为strcpy的第一个参数的。
fupeng1114 2011-07-04
  • 打赏
  • 举报
回复
给个具体点的代码了
ff007bit 2011-07-03
  • 打赏
  • 举报
回复
const不行,你是写入,当然是改变内容了,const代表常量,不可修改的.
你得重新定义一下char *
具体代码没有,不好说其他的方法
天外来客-007 2011-07-03
  • 打赏
  • 举报
回复
你传入的参数不对,请查看strcpy的定义!

strcpy定义:
char * strcpy ( char * destination, const char * source );
Copy string

Copies the C string pointed by source into the array pointed by destination, including the terminating null character.

To avoid overflows, the size of the array pointed by destination shall be long enough to contain the same C string as source (including the terminating null character), and should not overlap in memory with source.

Parameters
destination
Pointer to the destination array where the content is to be copied.
source
C string to be copied.
pathuang68 2011-07-03
  • 打赏
  • 举报
回复
const意味着不能改变,这和strcpy的语义是相矛盾的。strcpy的意思就是,将第二个参数拷贝到第一个参数,如果你的第一个参数是const,这种操作肯定就会失败。所以至少第一个参数不能是const的。
小小蔷薇 2011-07-03
  • 打赏
  • 举报
回复
传入的两个参数,是数组的话都是数组 ,是char*的话,都是char *
有个函数strdup好像是这样的,你查下
科技完美生活 2011-07-03
  • 打赏
  • 举报
回复
你传入的参数肯定不对啊
liuying_1001 2011-07-03
  • 打赏
  • 举报
回复
class A
{
public:
A(int j):i(j){}
mutalbe int i;
};
int main()
{
const A a(0);//a 是const类型的不能改变
a.i++; //但是a的成员i可以改变,因 i 被定义成了mutable型的
return 0;
}
或许对lz有用。。。。。
ryfdizuo 2011-07-03
  • 打赏
  • 举报
回复
strcpy(char* dest, const char* src)
dest不可以是const char*
waterfield 2011-07-03
  • 打赏
  • 举报
回复
为啥要给一个const的参数啊。如果非要强转可以搜一下 const_cast ,非常不推荐。
野男孩 2011-07-03
  • 打赏
  • 举报
回复
参数1是目标buf,要写入数据的,当然不能是const.

解决方案就是目标buf用char arr[100],不要用const char arr[100];

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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