void powerset(char* a, int i, char* set)
{ char temp[MAX_LENGTH];
/**
a是输入的集合,i是在集合的第几个位置,set是最后输出的集合
*/
strcpy(temp,set);
if(i>=strlen(a))
{
printf("{%s}\n",set);
}
else
{
powerset(a,i+1,temp);//每次需要set完整的版本
strncat(temp,(a+i),1);//每次将a数组的部分元素加到temp中
powerset(a,i+1,temp);//temp成为新的set
//如果powerset的是时候一直i+1就等于把set数组一直置空
}
}