#define _AFXDLL #include < afx.h > #include < afxcoll.h > #include < iostream > using namespace std; class CSortStringArray: public CStringArray {public:voidSort();private:BOOLCompareAndSwap(intpos);} ; void CSortStringArray::Sort() {BOOLbNotDone=TRUE;while(bNotDone){bNotDone=FALSE;for(intpos=0;pos<GetUpperBound();pos++)bNotDone|=CompareAndSwap(pos);}} BOOLCSortStringArray::CompareAndSwap( int pos) {CStringtemp;intposFirst=pos;intposNext=pos+1;if(GetAt(posFirst).CompareNoCase(GetAt(posNext))>0){temp=GetAt(posFirst);SetAt(posFirst,GetAt(posNext));SetAt(posNext,temp);returnTRUE;}returnFALSE;} void main() {CSortStringArraysortArray;sortArray.Add(CString("Zebra"));sortArray.Add(CString("Bat"));sortArray.Add(CString("Apple"));sortArray.Add(CString("Mango"));for(inti=0;i<=sortArray.GetUpperBound();i++)cout<<sortArray[i]<<endl;sortArray.Sort();cout<<endl;for(intj=0;j<=sortArray.GetUpperBound();j++)cout<<sortArray[j]<<endl;system("pause");} 参考: How to Sort a CStringArray in MFC<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />