“初始化”: 无法从“const char *”转换为“char *”

hfulfdal 2014-05-28 09:57:24
char *CC_Find(const char *string, const char *strCharSet)
{
char *cp=strstr(string,strCharSet);
if(cp!=NULL&&(cp-string)%2==1)
{
return NULL;
}
return cp;
}
...全文
2822 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dataxdata 2014-06-03
  • 打赏
  • 举报
回复
char *CC_Find(const char *string, const char *strCharSet) 这个函数的定义是不匹配的,要么定义成 const char *CC_Find(const char *string, const char *strCharSet) { const char *cp=strstr(string,strCharSet); ..... 要么定义成 char *CC_Find(char *string, const char *strCharSet) { char *cp=strstr(string,strCharSet); .........
laowang2 2014-05-29
  • 打赏
  • 举报
回复
const_cast <char *> ()
hfulfdal 2014-05-28
  • 打赏
  • 举报
回复
引用 2 楼 kfrght 的回复:
把const去掉就可以编译运行了
去掉之后会有这种错误: 错误 3 error C2666: “CC_Find”: 2 个重载有相似的转换 错误在这里: CC_Find("∶·./",sChar)
宝龙哥 2014-05-28
  • 打赏
  • 举报
回复
把const去掉就可以编译运行了
宝龙哥 2014-05-28
  • 打赏
  • 举报
回复
const是一个C语言的关键字,它限定一个变量不允许被改变。

另,你的函数有定义有问题,不要返回char *,而是在函数外面定义好后在函数里面赋值
勉励前行 2014-05-28
  • 打赏
  • 举报
回复
用 const_cast <char *> ()
缘中人 2014-05-28
  • 打赏
  • 举报
回复
这样改了,其他的你自己看业务
char *CC_Find(const char *string, const char *strCharSet)
{
	char *astrig = new char[strlen(string)];//这样
	strcpy(astrig, string);
	char *cp = strstr(astrig, strCharSet);
	if (cp != NULL && (cp - string) % 2 == 1)
	{
		delete astrig;
		return NULL;
	}
	delete astrig;
	return cp;
}

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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