Buonasera a tutti,

questo è il codice in mio possesso
codice:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char stringa[3];
    int cont;
    int valore;
    int i=2;
    int k=1;
    do{
       valore=1;
       
       //pulitura schermo
       system("CLS");
       
       //caricamento lettere
       for(i=0;i<3;i++){
                     cout<<"inserisci lettera maiuscola : ";
                     cin>>stringa[i];
                     }
       //decodifica da lettere a numeri              
       for(i=2;i>=0;i--){
                      valore+=(stringa[i]-65)*k;
                      k*=26;
                      }
                      
        //stampa del vecchio codice                                      
        cout<<"risultato : "<<valore<<endl;
        
        //scelta secondo inserimento
        cout<<"nuova codifica? SI = 1, NO = 0"<<endl;
        cin>>cont;
        
        //cancellazione lettere
        for(i=0;i<3;i++){
                     stringa[i]=0;
                     }
                     
        }while(cont==1);  
                                           
      
    system("PAUSE");
    return EXIT_SUCCESS;
}
il mio problema è che al primo ciclo tutto bene ma al secondo ciclo dopo avergli detto nuova codifica si se al posto di AAA=1 metto AAB che dovrebbe essere uguale a 2 mi esce un numero incorretto e del tutto casuale, mentre se riavvio il programma AAB risulta 2.
Come posso risolvere questo fastidioso problema??
grazie a tutti in anticipo