Как заменить символ в строке TCHAR

У меня есть строка TCHAR, которая содержит путь. Мне нужно заменить все случаи, если таковые имеются, / с \ в пути. Переменная, содержащая путь, определяется следующим образом:

TCHAR mypath[1024];

Если mypath содержит C:/new/newfile/a.txtтогда мне понадобится / быть замененным \ так что результирующая строка становится C:\new\newfile\a.txt,

Кроме того, файл, который мне нужно адаптировать, уже имеет UNICODE, определенный следующим образом:

#ifndef UNICODE
#define UNICODE
#endif

И функции как wcsncmp были использованы для сравнения строк. Как я могу добиться замены символов в строке TCHAR?

0

Решение

Попробуйте следующий код:

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

Другие решения

Путь в ОС Windows не более 260 символов. Итак, я думаю, что один из способов — найти / заменить грубой силой.

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

for (int i=0; i<_MAX_PATH && myPath[i]; i++)
{
if (myPath[i] == '/')
myPath[i] = '\\';
}
1

По вопросам рекламы [email protected]