zeb*_*bra 2 c++ string visual-studio-2010
我正在尝试编译一些给我的代码,我被告知编译好了.也许在不同的编译器上.我正在使用VS2010,我有以下几行:
char *dot = strrchr(filename, '.');
Run Code Online (Sandbox Code Playgroud)
这会导致编译错误:
"错误C2440:'初始化':无法从'const char*'转换为'char*'
怎么会?我该如何解决?
错误消息非常清楚.strrchr返回一个const char*.所以你需要:
const char *dot = strrchr(filename, '.');
Run Code Online (Sandbox Code Playgroud)
如果你真的需要char*,你可以strcpy用于转换.
C++有更理智的版本strchr和strrchr超载ç感谢比,这么说:
const char * dot = strrchr(filename, '.');
Run Code Online (Sandbox Code Playgroud)
在没有重载的C中,你只有一个函数char * strrchar(const char *, const char *),由你来决定结果是常量还是可变的,这取决于要输入函数的指针类型.C有许多这种类型不安全的功能.
| 归档时间: |
|
| 查看次数: |
6637 次 |
| 最近记录: |