不知道出现了什么问题
代
#include
#include
#include
using namespace std;
int strlen1(char u[]);
bool strstr1(char a[],char b);
struct FF
{
string first;
string second;
bool flage=true;
};
int main()
{
string u,t,x,s2='\0',s1='\0',s3='\0';
bool flag=false;
int n,m=0;
cout<<"输入全集U:";
cin>>u;
char uu[50];
strcpy(uu,u.c_str());
cout<B:";
cin>>n;
FF ff[n];
for(int i=0;i
{
cin>>t;
char ch[20];
strcpy(ch,t.c_str());
for(int j=0;j
{
if(ch[j]=='-')
{
j+=2;
flag=true;
}
if(flag)
{
ff[i].second+=ch[j];
}else ff[i].first+=ch[j];
}
}
cout
cin>>x;
s2=x;
char xx[500];
strcpy(xx,x.c_str());
cout<<endl;
for(int k=0;k<strlen1(uu);k++)
{
for(int i=0;i<n;i++)
{
char qq[10];
strcpy(qq,ff[i].first.c_str());
for(int j=0;j<strlen1(qq);j++)
{
if(strstr1(xx,qq[j]))
{
m++;
}else break;
}
if((m==strlen1(qq))&&ff[i].flage)
{
s1+=ff[i].second;
ff[i].flage=false;
s2+=s1;
if(s2==x||s2==u)
{
cout<<"X关于F的闭包为:"<<s2<<endl;
return 0;
}else
{
x+=s1;
m=0;
s1=s3;
}
}
}
}
}
int strlen1(char ch[])
{
int k=0;
for(int i=0;i<1000;i++)
{
if(ch[i]!='\0')k+=1;
else break;
}
return k;
}
bool strstr1(char a[],char b)
{
for(int i=0;i<strlen1(a);i++)
{
if(a[i]==b)return true;
}
return false;
}
码