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 OS のパスは最大 260 文字です。したがって、方法の1つは、ブルートフォースの検索/置換を行うことだと思います。

#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 に答える