Mi pare un esercizio un po difficile per uno che è agli inizi con il linguaggio c .

A me viene in mente un modo , con cui affrontare l'esercizio , e dargli una soluzione .

ma fa uso della funzione itoa() che è una funzione non standar c ,presente in molti compilatori compreso MS Vs c++

usare questa funzione , magari per un esercizio scolastico , potrebbe essere valutato un
grosso errore


il mio approccio sarebbe questo

1 converto il codice ascii del carattere passato per argomento in un array di char
rappresentante il valore binario itoa (i,buffer,2); ottengo cosi "10101010" un array buffer di char

2 in una array di char temporaneo , tramite un ciclo for copio la sequenza binaria
cambiando un solo carattere , poi chiamo una mia funzione che converte la sequenza
di caratteri 01 in un valore decimale , e la memorizzo nell'array di uscita

codice:
  int i, k;
  char temp[9];
 for(i=0;i<8;i++)// ciclo per ogni elemento dell'arrey di uscita 
 {
        for(k=0;k<8;k++)//ciclo per ogni elemento binario di buffer
           {
               temp[k]=buffer[k];
               if(k==i)//modifico di volta in volta un solo bit
                 {
                    if(temp[k]==0)
                          temp[k]=1; 
                     else
                           temp[k]=0 ;  
                 } 

           }
          convertibinariodecimale(arraydiuscita,temp,posizione array di uscita i);
 }