#include "afxtempl.h"
//找出字串的所有子串
//string:源字串
//subStr:所有子串的列表
//返回值:子串的个数
int subString( const CString string , CList<CString,CString>&subStr )
{
int len = string.GetLength();
for( int lencount = 1 ; lencount <= len ; lencount++ )
{
for( int start = 0 ; start <= len - lencount ; start++ )
{
CString sub = string.Mid( start , lencount );
if( !subStr.Find( sub ) )
subStr.AddHead( sub );
}
}
return subStr.GetCount();
}
void main()
{
CList<CString,CString>subStr;
CString msg = "aaa";
printf( "源字串: %s/n" , msg );
printf( "共有子串 %d 个./n" , subString( msg , subStr ) );
CString str;
POSITION p = subStr.GetHeadPosition();
while( p )
{
str = subStr.GetNext( p );
printf( "%s/n" , str );
}
}