我想把一个字符串如C:\XXX\ZZZ\YY.txt中所有的\替换成\\,请问用CString里的函数怎么写啊?

解决方案 »

  1.   

    运行下这个看看。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;
      

  2.   

    CString str=C:\XXX\ZZZ\YY.txt
    str.Replace("\\", "\\\\"); 这样
      

  3.   

    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”。
      

  4.   


    CString tmp="C:\\XXX\\ZZZ\\YY.txt"; //在C++中\比较特殊 如果表示一个\必须写成\\
    tmp.Replace("\\","\\\\");
    MessageBox(tmp);
      

  5.   


    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 的长度
    不需要是相等的。两种版本形式都进行区分大小写的匹配。
      

  6.   

    上面回答的都是正确的,LZ不应该用find,该用Replace方法就OK了!
      

  7.   

     将路径中的单’\’变为’\\’
    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++; 
    }