CString中的find怎么用 我想把一个字符串如C:\XXX\ZZZ\YY.txt中所有的\替换成\\,请问用CString里的函数怎么写啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 运行下这个看看。CString csSrc = _T("C:\\XXX\\ZZZ\\YY.txt");CString csDst;int x;for(;;){ x = csSrc.Find('\\'); if( x == -1) break; csDst += csSrc.Left(x+1)+'\\'; csSrc = csSrc.Right(csSrc.GetLength()-x-1);}csDst+=csSrc; CString str=C:\XXX\ZZZ\YY.txtstr.Replace("\\", "\\\\"); 这样 CString::Replaceint Replace( TCHAR chOld, TCHAR chNew );int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。参数: chOld 要被chNew替换的字符。 chNew 要用来替换chOld的字符。 lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。 lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。 说明:此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。示例:// 第一个例子,old 和new具有相同的长度。CString strZap( "C--" );int n = strZap.Replace('-', '+' );ASSERT( n == 2 );ASSERT(strZap == "C++" );// 第二个例子,old和new具有不同的长度。CString strBang("Everybody likes ice hockey");n = strBang.Replace( "hockey", "golf" );ASSERT( n == 1 )n = strBang.Replace ( "likes" , "plays" );ASSERT( n == 1 )n = strBang.Replace( "ice", NULL );ASSERT( n == 1 )ASSERT( strBang == "Everybody plays golf" )// 注意,现在在你的句子中有了一个额外的空格。// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。 CString tmp="C:\\XXX\\ZZZ\\YY.txt"; //在C++中\比较特殊 如果表示一个\必须写成\\tmp.Replace("\\","\\\\");MessageBox(tmp); CString tmp="C:\\XXX\\ZZZ\\YY.txt"; //在C++中\比较特殊 如果表示一个\必须写成\\tmp.Replace("\\","\\\\");MessageBox(tmp);CString::Replaceint Replace( TCHAR chOld, TCHAR chNew );int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );返回值返回被替换的字符数。如果这个字符串没有改变则返回零。参数chOld要被chNew 替换的字符。chNew要用来替换chOld 的字符。lpszOld一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。lpszNew一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。说明此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定的子串。在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。 上面回答的都是正确的,LZ不应该用find,该用Replace方法就OK了! 将路径中的单’\’变为’\\’CMyDoc *pDoc=GetDocument();CString reportPath = pDoc -> strPathName;int lentemp = reportPath.GetLength();reportPath = reportPath.Left(lentemp-4);int lenpath = reportPath.GetLength();for(int i=0; i<lenpath-1; ) { if(reportpath.GetAt(i) = = ‘\\’) { reportpath.Insert(i, ‘\\’); i+=2; } i++; } 关于USB存储设备卷标卸载后怎么恢复 怎么报答都行求:下面代码是在哪里加载dll的,貌似没找到load ; 问题2 除了导出函数,dll中的其他函数和语句何时执行 vs2005中怎么对控件改名字 原来就熟悉c++,最近又把侯捷的深入浅出MFC看了几边,收益颇多 【不知是复杂还是简单的问题】在unicode程序里SetWindowText无一例外地得到乱码 谁能给个用com做的插件的例子 内存报错问题,谢谢,帮我看看 进程与线程的关系讨论 奇怪的错误。 谁能告诉我CWND和HWND有什么不一样 如何关闭一个弹出窗口 VC++6.0数据表格求救
CString csDst;
int x;
for(;;)
{
x = csSrc.Find('\\');
if( x == -1) break;
csDst += csSrc.Left(x+1)+'\\';
csSrc = csSrc.Right(csSrc.GetLength()-x-1);
}
csDst+=csSrc;
str.Replace("\\", "\\\\"); 这样
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。参数: chOld 要被chNew替换的字符。
chNew 要用来替换chOld的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。 说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。示例:
// 第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++" );
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n = strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n = strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang == "Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
CString tmp="C:\\XXX\\ZZZ\\YY.txt"; //在C++中\比较特殊 如果表示一个\必须写成\\
tmp.Replace("\\","\\\\");
MessageBox(tmp);
CString tmp="C:\\XXX\\ZZZ\\YY.txt"; //在C++中\比较特殊 如果表示一个\必须写成\\
tmp.Replace("\\","\\\\");
MessageBox(tmp);CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值
返回被替换的字符数。如果这个字符串没有改变则返回零。
参数
chOld
要被chNew 替换的字符。
chNew
要用来替换chOld 的字符。
lpszOld
一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。
lpszNew
一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。
说明
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew
现场替换chOld。函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定
的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度
不需要是相等的。两种版本形式都进行区分大小写的匹配。
CMyDoc *pDoc=GetDocument();CString reportPath = pDoc -> strPathName;int lentemp = reportPath.GetLength();reportPath = reportPath.Left(lentemp-4);int lenpath = reportPath.GetLength();for(int i=0; i<lenpath-1; ) { if(reportpath.GetAt(i) = = ‘\\’) { reportpath.Insert(i, ‘\\’); i+=2; } i++;
}