📄 sequchar.cpp
字号:
// SequChar.cpp: implementation of the SequChar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include<ctype.h>
//#include<iostream.h>
#include "SequChar.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
SequChar::SequChar(char * PArryOne)
{
for(int i=0;i<40;i++)
{
ReArryOne[i]=*PArryOne;
PArryOne++;
NewReArryOne[i]=1;
}
// for( i=0;i<40;i++)
// {
// cout<<"ReArryOne="<<ReArryOne[i]<<endl;
// }
GlobM=0;
Sing=0;
P_FrontP=0;
P_LastP=0;
IfTwoParts=0;
Set_Fp_Lp();
IsWhat();
WriteBaseArry();
ViewArry();
}
SequChar::~SequChar()
{
// cout<<"4 3 2 1 "<<endl;
}
int SequChar::WriteBaseArry()
{
for(int i=0;i<40;i++)
{
BaseArry[i]=NewReArryOne[i];
// cout<<"NewReArryOne[i] "<<NewReArryOne[i]<<endl;
}
return 1;
}
int SequChar::IsWhat()
{
if(Sing==1)
{
NextSection();
P_FrontP=FrontP;
P_LastP=LastP;
}
Sing=1;
int m=0;
int n=0;
int X_FrontP=0;
int X_LastP=0;
LongUsed=(LastP-FrontP);
// cout<<"LongUsed="<<LongUsed<<endl;
// cout<<"P_FrontP="<<P_FrontP<<endl;
LastP=0;
FrontP=0;
for( int i=0;i<LongUsed-1;i++)
{
if(ReArryOne[i]==40)
{
if(m==n)
FrontP=i;
m++;
}
if(ReArryOne[i]==41)
{
LastP=i;
n++;
}
if((m==n)&&(m!=0))
{
// cout<<"break;"<<endl;
break;
}
}
for( i=0;i<LongUsed-1;i++)
{
if(ReArryOne[i]==40)
{
if(m==n)
X_FrontP=i;
m++;
}
if(ReArryOne[i]==41)
{
X_LastP=i;
n++;
}
}
// cout<<"m="<<m<<FrontP<<X_FrontP<<endl;
// cout<<"n="<<m<<LastP<<X_LastP<<endl;
if(ReArryOne[FrontP-1]==33)
{
if(ReArryOne[FrontP]==40)
{
NewReArryOne[GlobM]=ReArryOne[FrontP-1];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
IsWhat();
}
else
{
NewReArryOne[GlobM]=ReArryOne[FrontP];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[FrontP+1];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
}
}
else if((m==n)&&(LastP==FrontP))
{
if(ReArryOne[FrontP]==33)
{
NewReArryOne[GlobM]=ReArryOne[FrontP];// cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[FrontP+1];// cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
}
else
{
NewReArryOne[GlobM]=ReArryOne[FrontP+1];// cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[FrontP];// cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[FrontP+3];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
}
}
else if((m==n)&&(LastP!=FrontP))
{
if((FrontP-2)>0)
{
NewReArryOne[GlobM]=ReArryOne[FrontP-2];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[FrontP-3];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
IsWhat();
}
else if(ReArryOne[LastP+3]==40)
{
NewReArryOne[GlobM]=ReArryOne[LastP+1];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
IsWhat();
FrontP=X_FrontP;
LastP=X_LastP;
IsWhat();
}
else if(ReArryOne[LastP+3]!=40)
{
NewReArryOne[GlobM]=ReArryOne[LastP+1];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
NewReArryOne[GlobM]=ReArryOne[LastP+3];//cout<<" NewReArryOne[GlobM]"<< NewReArryOne[GlobM]<<endl;
GlobM++;
IsWhat();
}
}
ViewArry();
return 1;
}
void SequChar::NextSection()
{
int m=FrontP;
LongUsed=(LastP-FrontP);
for(int i=0;i<LongUsed-1;i++)
{
ReArryOne[i]=ReArryOne[FrontP+1];
FrontP++;
// cout<<"ReArryOne[i]"<<i<<ReArryOne[i]<<endl;
}
FrontP=m;
}
void SequChar::ViewArry()
{
LongUsed=(LastP-FrontP);
for(int i=0;i<30;i++)
{
// cout<<"ReArryOne[i]="<<i<<" "<<ReArryOne[i]<<endl;
// cout<<"NewReArryOne[i]="<<i<<" "<<NewReArryOne[i]<<endl;
// cout<<"BaseArry[i]="<<i<<" "<<BaseArry[i]<<endl;
}
}
void SequChar::Set_Fp_Lp()
{
LastP=40;
FrontP=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -