编译时候报错

勤奋的执着 2018-01-18 09:13:43
FileOper.cpp:25:30: 错误:从类型‘const char*’到类型‘char*’的转换无效 [-fpermissive]
p = strrchr(FileName, '/')



SYNOPSIS
#include <string.h>

char *strchr(const char *s, int c);

char *strrchr(const char *s, int c);

#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <string.h>

char *strchrnul(const char *s, int c);

DESCRIPTION
The strchr() function returns a pointer to the first occurrence of the character c in the string s.

...全文
312 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2018-01-19
  • 打赏
  • 举报
回复
p是const char *类型?那换成char *类型
勤奋的执着 2018-01-19
  • 打赏
  • 举报
回复
发现问题原因了,GCC编译器编译的时候会报这种错误,G++是正确的,各位可以看下这篇帖子~ 跟我碰到的问题一样~ xi https://stackoverflow.com/questions/16914707/why-does-gcc-accept-convertion-from-const-char-to-char-on-stdstrrchr
loong_long_ago 2018-01-19
  • 打赏
  • 举报
回复
勤奋的执着 2018-01-19
  • 打赏
  • 举报
回复
引用 4 楼 qq_36751214 的回复:
p = strrchr(( char*)FileName, '/') 这样应该可以的。
为什么需要用char * , man里面明明显示用的const char *啊..
勤奋的执着 2018-01-19
  • 打赏
  • 举报
回复
引用 3 楼 jianwen0529 的回复:
p是const char *类型?那换成char *类型
可能是我没写清楚,

void GetFileName(const char *FileName,char *ScrFileName)
{
    char *p = NULL;

   ...
   if((p = strrchr(FileName, '/')) == NULL)
勤奋的执着 2018-01-19
  • 打赏
  • 举报
回复
引用 1 楼 faihung 的回复:
已经说明了啊,类型转换无效。 也就是说你调用函数、传递参数的时候类型不匹配。
我传入的参数就是const char *, 你看sttrch函数也是const char *,哪里不匹配。。
宁南学者 2018-01-19
  • 打赏
  • 举报
回复
p = strrchr(( char*)FileName, '/') 这样应该可以的。
faihung 2018-01-19
  • 打赏
  • 举报
回复
引用 9 楼 cyhh_h 的回复:
发现问题原因了,GCC编译器编译的时候会报这种错误,G++是正确的,各位可以看下这篇帖子~ 跟我碰到的问题一样~ xi https://stackoverflow.com/questions/16914707/why-does-gcc-accept-convertion-from-const-char-to-char-on-stdstrrchr
以前应该也遇到过类似的,c和c++的确不同
faihung 2018-01-19
  • 打赏
  • 举报
回复
引用 5 楼 cyhh_h 的回复:
[quote=引用 1 楼 faihung 的回复:] 已经说明了啊,类型转换无效。 也就是说你调用函数、传递参数的时候类型不匹配。
我传入的参数就是const char *, 你看sttrch函数也是const char *,哪里不匹配。。[/quote]我当时看了,你的函数是对的,但是“FileName”可能不对,我不知道你FileName是什么类型。
paschen 版主 2018-01-18
  • 打赏
  • 举报
回复
这样呢 ? p = strrchr((const char*)FileName, '/')
faihung 2018-01-18
  • 打赏
  • 举报
回复
已经说明了啊,类型转换无效。 也就是说你调用函数、传递参数的时候类型不匹配。

64,648

社区成员

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

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