如何替换 TCHAR 字符串中的字符

How to replace character in TCHAR string

本文关键字:字符串 字符 TCHAR 何替换 替换      更新时间:2023-10-16

我有一个包含路径的TCHAR字符串。我需要将/的所有出现(如果有)替换为路径中的。保存路径的变量定义如下:

TCHAR mypath[1024];

如果mypath包含C:/new/newfile/a.txt,那么我需要将/替换为,以便生成的字符串变得C:newnewfilea.txt

另外,我需要调整的文件已经定义了如下UNICODE:

#ifndef UNICODE
#define UNICODE
#endif

wcsncmp这样的函数已经用于字符串比较。如何在 TCHAR 字符串中实现字符替换?

尝试以下代码:

TCHAR *pCH = mypath;
while ( ( pCH = _tcschr( pCH, _T('/') ) ) != NULL )
{
    *pCH = _T('');
}

Windows 操作系统中的路径最多为 260 个字符。所以,我认为一种方法是进行蛮力查找/替换。

#include <stdlib.h>
TCHAR myPath[_MAX_PATH];
for (int i=0; i<_MAX_PATH && myPath[i]; i++)
{
    if (myPath[i] == '/')
       myPath[i] = '';
}