字串的所有子串_afxtempl版

#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 );
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值