0

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

TCHAR mypath[1024];

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

另外,我需要适应的文件已经有UNICODE定义如下:

#ifndef UNICODE
#define UNICODE
#endif

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

4

2 回答 2

3

试试下面的代码:

TCHAR *pCH = mypath;
while ( ( pCH = _tcschr( pCH, _T('/') ) ) != NULL )
{
    *pCH = _T('\\');
}
于 2013-11-12T07:50:16.940 回答
1

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

#include <stdlib.h>
TCHAR myPath[_MAX_PATH];

for (int i=0; i<_MAX_PATH && myPath[i]; i++)
{
    if (myPath[i] == '/')
       myPath[i] = '\\';
}
于 2013-11-12T06:29:43.847 回答