现在有一个CString 型变量格式为$xxxxx*,我想去掉前后的$,*,将中间的xxxx赋给另一个CString 型变量,不知道该怎么办?? 现在
     CString m_strRX,m_strRXData;
     int j=0;
     for(int i=0;i<m_strRXData.GetLength();i++)
    {
        switch(m_strRXData[i])
{
          case '$':
                    
break;
          case '*':
        break;
          default:
       m_strRX[j++]=m_strRXData[i];
}
      } 编译时时提示:rror C2106: '=' : left operand must be l-value
  不知道大侠能不能提示一下

解决方案 »

  1.   

    你查查csdn CString好象有find函数 可以去字符串中指定的字符
      

  2.   

    你这个应该用char buffer[100]
    分清楚CString和字符数组不是一会事情,CString的[]是只读的吧?     char m_strRX[100];
         CString  m_strRXData; 
         int j=0; 
         for(int i=0;i <m_strRXData.GetLength();i++) 
        { 
            switch(m_strRXData[i]) 

              case '$': 
                         
    break; 
              case '*': 
            break; 
              default: 
           m_strRX[j++]=m_strRXData[i]; 

          } 
      

  3.   

    []运算符不能作为左值,想要实现用SetAt函数。
      

  4.   

    表达的不清楚,是不是这个意思:
    有一个【CString】类型的变量,它的内容为【$xxxxx*】,x的个数不定长;现在想取出【$】和【*】之间的数据,对吗?=========================================提示:1、调用【CString::Find】查找【$】和【*】的位置;2、调用【CString::Mid】截取中间的数据;
      

  5.   

    overloaded subscript ([]) operator returns a single character specified by the zero-based index in nIndex.它只能返回值不能返回地址的。
      

  6.   

    5楼的指点多看看
    不过你也要明白CString/ char[]以及string虽然他们都是字符串,但是使用方法是差别很大的
      

  7.   


    CString m_strRX,m_strRXData; 
    for(int i=0;i <m_strRXData.GetLength();i++) 

    switch(m_strRXData[i]) 

    case '$':  break; 
    case '*': 
    break; 
    default: 
    m_strRX+=m_strRXData[i]; 


      

  8.   

    Searches this string for the first match of a character or substring. 
    int Find(
       PCXSTR pszSub,
       int iStart=0
    ) const throw( );
    int Find(
       XCHAR ch,
       int iStart=0
    ) const throw( );
     
    Parameters
    pszSub
    A substring to search for.iStart
    The index of the character in the string to begin the search with, or 0 to start from the beginning.ch
    A single character to search for.====================
    MSDN的讲解
      

  9.   

    推荐用Find和Mid,这个效率最高,而且LZ的代码有BUG,你这个不是取出中间部分,而是过滤'$'和'*'……
      

  10.   


      int pos1 = m_strRXData.Find('$');
      int pos2 = m_strRXData.Find('*',pos+1);
      CString result = m_strRXData.Mid(pos1+1,pos2-pos1);
      

  11.   

    首先你的格式是否固定?如果固定,那很好处理。
    否则CString::Find和CString::Mid方法最实用。
      

  12.   


    CString result = m_strRXData.Mid(1, m_strRXData.GetLength()-2);
      

  13.   

    CString是一个MFC类,它定义了很多的用于取子串的方法啊,你没事自己看看MSDN吧.