Работа с массивом string, c++
Очень туплю, помогите пожалуйста. Изначальный массив строк состоит из двоичных чисел (0001, 0010 и тд.). Нужно, к примеру, если два числа этого массива будут отличаться только на ОДНУ позицию (допустим, 0001 и 0101 - разница только во втором разряде), в НОВЫЙ массив вогнать элемент, в котором вместо отличающего разряда будет звездочка (0001 и 0101 - на выходе в массиве 0*01), а эти два сравниваемых элемента если таковые есть (3 одинаковых разряда) отбросить из исходного массива и в дальнейшей обработке этого же исходного они принимать участия не должны.
#include <string.h>
using namespace std;
struct bin
{
string el;
int kol_ed=0;
};
int main()
{
setlocale(LC_ALL, "Russian");
int i=0, j=0;
int num_p=0;//колво переменных для функции
cout<<"Введте количество переменных (4, 5 или 6)"<<endl;
do
{ cout<<"4, 5 или 6"<<endl;
cin>>num_p;
}
while(num_p!=4&&num_p!=5&&num_p!=6);
if(num_p==4)
{ int ost;
string arr_binary[16];//если выбрано 4 переменных - будет 16 элементов
arr_binary[0]="0000";
arr_binary[1]="0001";
arr_binary[2]="0010";
arr_binary[3]="0011";
arr_binary[4]="0100";
arr_binary[5]="0101";
arr_binary[6]="0110";
arr_binary[7]="0111";
arr_binary[8]="1000";
arr_binary[9]="1001";
arr_binary[10]="1010";
arr_binary[11]="1011";
arr_binary[12]="1100";
arr_binary[13]="1101";
arr_binary[14]="1110";
arr_binary[15]="1111";
int index[16];//массив для ввода конституент 1
cout<<"Массив:"<<endl;
for(i=0;i<16;i++)
{
do
{
cout<<arr_binary[i];
cout<<" введите конституенту (0 или 1) "<<endl;
cin>>index[i];
}
while(index[i]!=0&&index[i]!=1);
}
int k=0;
for(i=0;i<16;i++)
{
if(index[i]==1)
{k++;}
}
cout<<"K "<<k<<endl;
int j=0;
bin arr_binary1[k+1];
for(i=0;i<16;i++)//создаем новый массив с конституентами 1
{
if(index[i]==1)
{arr_binary1[j].el=arr_binary[i];
j++;}
}
cout<<"f= ";
for(i=0;i<=k;i++)//функция на выходе
{
if(i<k-1)
cout<<arr_binary1[i].el<<" v ";
else
cout<<arr_binary1[i].el<<endl;
}
for(i=0;i<=k;i++)//подсчет колва единиц
{
for(int z=0;z<4;z++)
{
if(arr_binary1[i].el[z]=='1')
{ arr_binary1[i].kol_ed++;
}
}
// cout<<"KKK "<<arr_binary1[i].el<<" "<<arr_binary1[i].kol_ed<<endl;
}
int ed_c=1, z=0, tabl=1, ch=0, m=0;
cout<<"Таблица распределения "<<endl;
for(i=0;i<4;i++)
{cout<<tabl<<" ";
for(z=0;z<=k;z++)
{
if(arr_binary1[z].kol_ed==ed_c)
cout<<arr_binary1[z].el<<"; ";
}
cout<<endl;
tabl++;
ed_c++;
}
bin arr_binary2[k+1];
bin arr_zap[k+1];
for(i=0;i<=k;i++)
{int s=0, j=0;
for(j=0;j<4;j++)
{
if(arr_binary1[i].el[z]==arr_binary1[i+1].el[z])
{
s++;}
if(s==3)
{
int zap1=i, zap2=i+1;
}
}
if(s==3)
{
arr_binary2[m].el=arr_binary1[i].el;
m++;
for(z=0;z<=k-2;z++)
{
if(z!=i&&z!=i+1)
{
arr_zap[z].el=arr_binary1[i].el;
}
}
}
}
for(i=0;i<m;i++)
{
cout<<"aa "<<arr_binary2[i].el<<endl;
}
/*for(i=0;i<=k;i++)
{
for(int o=0;o<arr_binary1[i].el.size();o++)
{
}
}*/
/*bin sovp;
int s=0, m=0, n=0;
for(i=0;i<=k;i++)
{sovp.el=arr_binary1[i].el;
for(int a=i+1;a<=k;a++)
{
s=0, n=0;
for(z=0;z<4;z++)
{
if(arr_binary1[i].el[z]==arr_binary1[a+1].el[z])
s++;
else
n=z;
}
cout<<"z "<<z<<endl;
cout<<"s "<<s<<endl;
if(s==3)
{arr_binary2[m].el=sovp.el;
cout<<arr_binary2[m].el<<endl<<endl;
m++;
/*for(int o=0;o<4;o++)
{
if( o!=z)
arr_binary2[m].el[o]=sovp.el[o];
else
arr_binary2[m].el[o]='*';
}
m++;}
cout<<"arr "<<arr_binary2[m].el<<endl;*/
/*}
}
}*/
}
if(num_p==5)
{ int ost;
string arr_binary[32];//если выбрано 4 переменных - будет 32 элементов
int index [32];
arr_binary[0]="00000";
arr_binary[1]="00001";
arr_binary[2]="00010";
arr_binary[3]="00011";
arr_binary[4]="00100";
arr_binary[5]="00101";
arr_binary[6]="00110";
arr_binary[7]="00111";
arr_binary[8]="01000";
arr_binary[9]="01001";
arr_binary[10]="01010";
arr_binary[11]="01011";
arr_binary[12]="01000";
arr_binary[13]="01100";
arr_binary[14]="01101";
arr_binary[15]="01111";
arr_binary[16]="10000";
arr_binary[17]="10001";
arr_binary[18]="10010";
arr_binary[19]="10011";
arr_binary[20]="10100";
arr_binary[21]="10101";
arr_binary[22]="10110";
arr_binary[23]="10111";
arr_binary[24]="11000";
arr_binary[25]="11001";
arr_binary[26]="11010";
arr_binary[27]="11011";
arr_binary[28]="11000";
arr_binary[29]="11100";
arr_binary[30]="11101";
arr_binary[31]="11111";
cout<<"Массив:"<<endl;
for(i=0;i<32;i++)
{
do
{
cout<<arr_binary[i];
cout<<"введите конституенту (0 или 1) "<<endl;
cin>>index[i];
}
while(index[i]!=0&&index[i]!=1);
}
}
if(num_p==6)
{ int ost;
string arr_binary[64];//если выбрано 4 переменных - будет 64 элементов
int index [64];
arr_binary[0]="00000";
arr_binary[1]="00001";
arr_binary[2]="00010";
arr_binary[3]="00011";
arr_binary[4]="00100";
arr_binary[5]="00101";
arr_binary[6]="00110";
arr_binary[7]="00111";
arr_binary[8]="01000";
arr_binary[9]="01001";
arr_binary[10]="01010";
arr_binary[11]="01011";
arr_binary[12]="01000";
arr_binary[13]="01100";
arr_binary[14]="01101";
arr_binary[15]="01111";
arr_binary[16]="10000";
arr_binary[17]="10001";
arr_binary[18]="10010";
arr_binary[19]="10011";
arr_binary[20]="10100";
arr_binary[21]="10101";
arr_binary[22]="10110";
arr_binary[23]="10111";
arr_binary[24]="11000";
arr_binary[25]="11001";
arr_binary[26]="11010";
arr_binary[27]="11011";
arr_binary[28]="11000";
arr_binary[29]="11100";
arr_binary[30]="11101";
arr_binary[31]="11111";
arr_binary[32]="100000";
arr_binary[33]="100001";
arr_binary[34]="100010";
arr_binary[35]="100011";
arr_binary[36]="100100";
arr_binary[37]="100101";
arr_binary[38]="100110";
arr_binary[39]="100111";
arr_binary[40]="101000";
arr_binary[41]="101001";
arr_binary[42]="101010";
arr_binary[43]="101011";
arr_binary[44]="101000";
arr_binary[45]="101100";
arr_binary[46]="101101";
arr_binary[47]="101111";
arr_binary[48]="110000";
arr_binary[49]="110001";
arr_binary[50]="110010";
arr_binary[51]="110011";
arr_binary[52]="110100";
arr_binary[53]="110101";
arr_binary[54]="110110";
arr_binary[55]="110111";
arr_binary[56]="111000";
arr_binary[57]="111001";
arr_binary[58]="111010";
arr_binary[59]="111011";
arr_binary[60]="111000";
arr_binary[61]="111100";
arr_binary[62]="111101";
arr_binary[63]="111111";
cout<<"Массив:"<<endl;
for(i=0;i<64;i++)
{
do
{
cout<<arr_binary[i];
cout<<"введите конституенту (0 или 1) "<<endl;
cin>>index[i];
}
while(index[i]!=0&&index[i]!=1);
}
}
return 0;
}