MFC数组类
CByteArray:
CDWordArray:
CPtrArray:
CUIntArray:
CWordArray:
CStringArray:
常用成员函数
1.int Add(ARG_TYPE newElement ); throw(CMemoryException );
2.TYPE& ElementAt(int nIndex );
3.void FreeExtra();
4.TYPE GetAt(int nIndex )const
5.int GetSize()const;
6.int GetUpperBound()const;
7.(1)void InsertAt(int nIndex, ARG_TYPE newElement, int nCount = 1 );
throw(CMemoryException );
(2)void InsertAt(int nStartIndex, CArray* pNewArray );
throw(CMemoryException );
8.void RemoveAll();
9.void SetAt(int nIndex, ARG_TYPE newElement );
10.void SetAtGrow(int nIndex, ARG_TYPE newElement ); throw(CMemoryException ); 11.void SetSize(int nNewSize, int nGrowBy = -1 ); throw(CMemoryException );
例:
CStringArray m_strArray
m_strArray.SetSize(5,5);
m_strArray[0] = "111111111111";
m_strArray[2] = "333333333333";
m_strArray[4] = "555555555555";
增加元素
int m_nIndex = 0;
CString m_strV alue = "Default";
int m_nRadio = 0;
cstring转为intif (m_nRadio == 0)
m_strArray.SetAtGrow(m_nIndex, m_strV alue);
else if (m_nRadio == 1)
m_strArray.Add(m_strV alue);
else
m_strArray.InsertAt(m_nIndex, m_strV alue, 1);
删除
int m_nIndex= 0;
m_strArray.RemoveAt(m_nIndex);
MFC的链表类
模板类Clist CTypedPtrList
非模板类CObList CPtrList CStringList
MFC链表类的常用成员函数——以Clist为例
1.CList(int nBlockSize = 10 );
2.TYPE GetHead()const;
3.TYPE GetTail()const;
4.RemoveHead()
5.RemoveTail()
6.原型1:POSITION AddHead(ARG_TYPE newElement );
原型2:void AddHead(CList* pNewList );
7.原型1:POSITION AddTail(ARG_TYPE newElement );
原型2:void AddTail(CList* pNewList );
8.RemoveAll()
9.POSITION GetHeadPosition()const;
10.POSITION GetTailPosition()const;
11.TYPE GetNext(POSITION& rPosition )const;
12.TYPE GetPrev(POSITION& rPosition )const;
13.TYPE GetAt(POSITION position )const;
14.void SetAt(POSITION pos, ARG_TYPE newElement );
15.void RemoveAt(POSITION position );
16.POSITION InsertBefore(POSITION position, ARG_TYPE newElement ); 17.POSITION InsertAfter(POSITION position, ARG_TYPE newElement ); 18.POSITION Find(ARG_TYPE searchV alue, POSITION startAfter = NULL)const; 19.POSITION FindIndex(int nIndex )const;
20.int GetCount()const;
21.BOOL IsEmpty()const;
例题
struct CStudent
{
CString m_strName;
int m_nScore;
};
CPtrList m_List;
向添加链表中添加元素
CStudent* m_pStudent = new CStudent;
m_pStudent->m_strName = m_strName;
m_pStudent->m_nScore = m_nScore;
m_List.AddTail(m_pStudent);
删除节点
int nNumber;
CStudent* m_pStudent = NULL;
if (m_List.IsEmpty())
MessageBox("结点已经全部删除!";
else
{
if (m_nRadio == 0)
m_pStudent = (CStudent*)m_List.RemoveHead();
else if(m_nRadio == 1)
m_pStudent = (CStudent*)m_List.RemoveTail();
else
{
if(nNumber < m_List.GetCount())
{
POSITION pos = m_List.FindIndex(m_nNumber);
POSITION pos1 = pos;
m_pStudent = (CStudent*)m_List.GetNext(pos1);
m_List.RemoveAt(pos);
}
else
{
MessageBox("指定结点超出范围!";
}
}
if(m_pStudent)
delete m_pStudent;
}
遍历链表
POSITION pos = m_List.GetHeadPosition();
while (pos != NULL)
{
CStudent* m_pStudent = (CStudent*) m_List.GetNext(pos); char s[81];
wsprintf(s, " 的成绩是%d.",m_pStudent->m_nScore); CString m_string=m_pStudent->m_strName+s;
}
CString类
一、常用成员函数
1.int GetLength()const;
说明:获取CString类对象包含字符串的长度(字符数)。2.BOOL IsEmpty()const;
说明:测试CString类对象包含的字符串是否为空。3.void Empty();
说明:使CString类对象包含的字符串为空字符串。4.TCHAR GetAt(int nIndex )const;
说明:获得字符串指定位置处的字符。
5.TCHAR operator [](int nIndex )const;
说明:获得字符串指定位置处的字符,作用和GetAt()一样。
6.void SetAt(int nIndex, TCHAR ch );
说明:设定字符串指定位置处的字符。
7.operator LPCTSTR ()const;
说明:返回指向储存在CString类对象内的字符串指针。
8.Mid
Mid函数有两个重载函数:
CString Mid(int nFirst )const; throw(CMemoryException );
获取从nFirst位置开始的子串。
CString Mid(int nFirst, int nCount )const; throw(CMemoryException );
获取从nFirst位置开始包含nCount个字符的子串。
9.CString Left(int nCount )const;throw(CMemoryException );
说明:获取字符串左边nCount长度的字符串。
10.CString Right(int nCount )const; throw(CMemoryException );
说明:获取字符串右边nCount长度的字符串。
11.CString SpanIncluding(LPCTSTR lpszCharSet )const;throw(CMemoryException );
说明:从字符串中提取包含在指定字符集lpszCharSet中的字符的子串。它从字符串的第一个字符开始,直到遇到不属于lpszCharSet中的字符为止。
12.CString SpanExcluding(LPCTSTR lpszCharSet )const;throw(CMemoryException );
说明:从字符串中提取不包含在指定字符集lpszCharSet中的字符的子串。
13.MakeUpper
将字符串中所有的字符全部转化成大写形式。
14.MakeLower
将字符串中所有的字符全部转化成小写形式。
15.MakeReverse
将字符串倒置,即将字符的顺序颠倒,第一个字符变成最后一个字符。
16.int Replace(TCHAR chOld, TCHAR chNew );
int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew );
说明:将字符串中的字符chOld或字符子串lpszOld替换成新的字符chNew或字符串lpszNew。
17. void CString::TrimLeft(TCHAR chTarget );
void CString::TrimLeft(LPCTSTR lpszTargets );
说明:删除字符串左边开头的字符或字符子串,参数缺省时删除左边的空格。
18.void CString::TrimRight(TCHAR chTarget );
void CString::TrimRight(LPCTSTR lpszTargets );
说明:删除字符串右边开头的字符或字符子串,参数缺省时删除右边的空格。
19.Find
原型:
int Find(TCHAR ch )const;
int Find(LPCTSTR lpszSub )const;
int Find(TCHAR ch, int nStart )const;
int Find(LPCTSTR pstr, int nStart )const;
说明:在字符串中查指定的字符或字符串。参数ch为要查的字符;lpszSub为要查的字符子串;nStart
指定查的起始位置,如缺省为从最左边开始;pstr指向欲查子串的指针。
20.ReverseFind
原型:int ReverseFind(TCHAR ch )const;
说明:返回字符串中最后一个和指定的字符匹配的字符的下标。
21.FindOneOf
原型:int FindOneOf(LPCTSTR lpszCharSet )const;
说明:在字符串中查第一个和指定的字符集lpszCharSet中任何一个字符匹配的字符的位置。
22.比较运算符
CString类重载了―==‖、―!=‖、―>=‖、―>‖、―<=‖、―<‖等比较运算符,可用于两个字符串间的各种比较运算,比较时区分大小写。
23.Compare
原形:int Compare(LPCTSTR lpsz )const;
说明:比较两个字符串,如果两个字符串相等,返回值等于0;如果本对象大于参数字符串,返回值大于0;如果本对象小于参数字符串,返回值小于0,比较时区分大小写。
24.CompareNoCase
原型:int CompareNoCase(LPCTSTR lpsz )const;
说明:与Compare函数类似,不同的是在忽略字符大小写的情况下比较两个字符串。
25.operator =
说明:将一个新的值赋予CString对象。
26.operator +
说明:将两个字符串合并成一个新的字符串。在两个参数中必须有一个是CString类型的,而另一个参数可以是字符、字符指针或CString类型对象。
27.operator +=
说明:在一个字符串的后面再添加一个字符串或一个字符。
二、例题
例1:连结字符串
CString m_str1="工作";
CString m_str2="正常";
CString m_str3=m_str1+m_str2;
执行第三行后,m_str3的值应该是―工作正常‖。
例2:比较字符串
CString m_str1="a";
CString m_str2="b";
int result=m_str1.Compare(m_str2);
if(result=0)
AfxMessageBox("两者相同";
else if(result>0)
AfxMessageBox("m_str1大于m_str2";
else
AfxMessageBox("m_str1小于m_str2";
运行结果在信息框中显示―m_str1小于m_str2‖。两个字符串比较大小时从第一个字母开始,按照对应的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论