Ehilà chi si rilegge...

Dal codice (che è un po' confuso...) mi pare di capire che ad ogni iterazione l'elemento modificato sia quello di indici r,c della matrice giusto? Puoi salvarti il valore contenuto in quella cella prima di sostituirlo e poi ripristinarlo alla fine dell'iterazione, qualcosa come

codice:
carattere = campo2[r][c];
campo2[r][c] = 'X';
...
...
campo2[r][c] = carattere;
dove chiaramente "carattere" è definito all'inizio di tipo char.