You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言修改文件扩展名触发C2440错误,求正确实现方案

问题:修改文件扩展名时遇到编译错误

场景与初始代码

我尝试将文件的扩展名从.xxx修改为.err(xxx为任意值),最初编写的代码如下:

for (size_t i=0; i<strlen(m_sMFLfile); i++) {
  errorfile[i] = m_sMFLfile[i];
  if(m_sMFLfile[i] == '.') {
    errorfile[i,i+3] = ".err";
    break;
    }
 }

编译错误信息

编译时触发如下错误:

error C2440: '=': cannot convert from 'const char [5]' to 'char'

其中errorfile的定义为:

char          errorfile[256];

自行修正的代码

后来我意识到正确的写法应该是这样:

for (size_t i=0; i<strlen(m_sMFLfile); i++) {
  errorfile[i] = m_sMFLfile[i];
  if(m_sMFLfile[i] == '.') {
    errorfile[i+1] = 'e';
    errorfile[i+2] = 'r';
    errorfile[i+3] = 'r';
    break;
    }
  }

但这种写法在文件名很长(比如1000个字符)的情况下会很麻烦……

内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:35:00