如何删除CString的最后三个字符并替换内容以修改文件名
实现方案
你可以通过CString自带的Delete方法或者Left方法实现删除末尾三个字符的需求,两种常用写法如下:
方法1:使用Delete方法(最直观)
CString AuthFile = m_strFileName; // 先判断长度避免越界,防止原字符串长度不足3个导致异常 if (AuthFile.GetLength() >= 3) { // 第一个参数为删除的起始位置(倒数第三位的索引,从0开始计算),第二个参数为删除的字符数 AuthFile.Delete(AuthFile.GetLength() - 3, 3); } // 追加auth AuthFile.Append(_T("auth"));
方法2:使用Left方法截取
CString AuthFile = m_strFileName; if (AuthFile.GetLength() >= 3) { // 截取前(总长度-3)个字符,直接覆盖原变量 AuthFile = AuthFile.Left(AuthFile.GetLength() - 3); } AuthFile.Append(_T("auth"));
注意:必须增加长度判断逻辑,避免原字符串长度不足3时出现内存访问异常;如果你的项目是Unicode编码,需要给字符串添加
_T()宏适配,避免编译报错。
内容的提问来源于stack exchange,提问作者Omar
相关产品推荐
相关产品推荐

