替换字符串中反斜杠"\"
我用BROWSEINFO获得了我想选中的一个路径,并把这个路径显示在了一个文本框里面,我要用这个路径来保存文件的话就需要把文本框里面的字符串里的反斜杠“\”替换成双反斜杠“\\”。在论坛里面搜了一些文章,说用s.Replace("\\","\\\\"),但是我在运行程序的时候出错了,然后监视,发现执行完了s=s.Replace("\\","\\\\");一句话之后,s变成了""这么一个怪东西,不知道是因为什么,请高手指点,我的程序大概如下:
void CMyDlg::OnButton1()
{
CString sFolderPath;
BROWSEINFO bi;
char Buffer[MAX_PATH];
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;
bi.pszDisplayName = Buffer;
bi.lpszTitle = "修改接收路径";
//bi.ulFlags = BIF_BROWSEINCLUDEFILES;
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);
sFolderPath = Buffer;
}
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc))) return;
lpMalloc->Free(pIDList);
lpMalloc->Release();
SetDlgItemText(IDC_SOURCE_DIR,sFolderPath);
}
void CMyDlg::OnButton2()
{
CString s;
GetDlgItemText(IDC_SOURCE_DIR,s);
s=s.Replace("\\","\\\\");
FILE *f;
CString name;
name=s+"\\1.txt";
f=fopen(name,"w");
fprintf(f,"%s",s);
}