Работа с массивом 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;
}

Ответы (0 шт):