现在有一个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
不知道大侠能不能提示一下
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
不知道大侠能不能提示一下
分清楚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];
}
}
有一个【CString】类型的变量,它的内容为【$xxxxx*】,x的个数不定长;现在想取出【$】和【*】之间的数据,对吗?=========================================提示:1、调用【CString::Find】查找【$】和【*】的位置;2、调用【CString::Mid】截取中间的数据;
不过你也要明白CString/ char[]以及string虽然他们都是字符串,但是使用方法是差别很大的
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];
}
}
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的讲解
int pos1 = m_strRXData.Find('$');
int pos2 = m_strRXData.Find('*',pos+1);
CString result = m_strRXData.Mid(pos1+1,pos2-pos1);
否则CString::Find和CString::Mid方法最实用。
CString result = m_strRXData.Mid(1, m_strRXData.GetLength()-2);