将字符串中的,所有不能在windows文件夹名上出现的字符去掉,咋办? 将字符串中的,所有不能在windows文件夹名上出现的字符去掉,咋办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Windows的文件名称不能包含\/:*?<>|,你可以用一条替换语句替换掉这些字符,最简单的实现方式是用CString的Replace方法,循环几次。 你可以接受输入时,屏蔽掉这些字符。。\/:*?<>|, CString str;str.LeftTrim("\\/:*?<>|"); CString str = "123***eert/\:4***5"; //str.TrimLeft("\\/:*?<>|"); str.Replace("//","////"); MessageBox(str,"",MB_OK);为啥没有替换过来? 直接用replace,全部换成一个字符了。但是/好像有问题 如果仅仅是在程序中进行不能输入这样的处理的话,用正则表达式进行校验。如果要替换的话,直接replace成特定字符串就可以。 CString str = "123***eert/\:4***5"; //str.TrimLeft("\\/:*?<>|"); str.Replace("//","////"); MessageBox(str,"",MB_OK);为啥没有替换过来? 一定要:str.TrimLeft("\\/:*?<>|");// 看看这个 函数 的 说明不能replace 还有个双引号 " for(i=0; pFileName[i]; i++) { if(strchr(":\\/?*\"<>|", pFileName[i])) pFileName[i] = '_'; } CString str = "123***eert/\:4***5"; str.TrimLeft("\\/:*?<>|"); str.TrimLeft("*"); MessageBox(str,"",MB_OK);都不对么 windows8,下面测试双引号可以有!CString str = "123**??*eert/\:4***5"; char temp[MAX_NAME_LENGTH] = {0}; memcpy(temp,(LPSTR)(LPCTSTR)str,str.GetLength()+1); for(int i=0; temp[i]; i++) { if(strchr(":\\/?*\<>|", temp[i])) temp[i] = '_'; } MessageBox(temp,"",MB_OK);实现了!厉害厉害 话外题,随便聊聊 请问如果打仗的话,计算机的哪个专业最有用? 如何进行工程改名? 用变量存取数据库表中的数据,谁能给个简单的例子? 110---哪位高手能告诉我,怎样把一个字符数组中的数据转换成16进制数吗? 如何改变splitter的宽度? 如何在程序里滚动视? 关于字符串复制的简单问题。 如何在确定com组件的参数类型 请问如何在一个类的成员函数中,用一个函数指针指向该类的另一个成员函数并调用 USB复制文件控制以及禁止运行U盘上的程序 VC撤销重做操作的原理是什么
str.LeftTrim("\\/:*?<>|");
CString str = "123***eert/\:4***5";
//str.TrimLeft("\\/:*?<>|");
str.Replace("//","////"); MessageBox(str,"",MB_OK);为啥没有替换过来?
//str.TrimLeft("\\/:*?<>|");
str.Replace("//","////"); MessageBox(str,"",MB_OK);为啥没有替换过来?
str.TrimLeft("\\/:*?<>|");// 看看这个 函数 的 说明
不能replace
for(i=0; pFileName[i]; i++)
{
if(strchr(":\\/?*\"<>|", pFileName[i]))
pFileName[i] = '_';
}
str.TrimLeft("\\/:*?<>|");
str.TrimLeft("*");
MessageBox(str,"",MB_OK);都不对么
CString str = "123**??*eert/\:4***5";
char temp[MAX_NAME_LENGTH] = {0};
memcpy(temp,(LPSTR)(LPCTSTR)str,str.GetLength()+1);
for(int i=0; temp[i]; i++)
{
if(strchr(":\\/?*\<>|", temp[i]))
temp[i] = '_';
} MessageBox(temp,"",MB_OK);
实现了!厉害厉害