Ho trovato questo codice javascript che fa dei controlli su una partita iva. E dovrei tradurlo in c++. E non so né il javascript né il c++

Codice Javascript:
codice:
  
      s = 0;
        for( i = 0; i <= 9; i += 2 )
                s += pi.charCodeAt(i) - '0'.charCodeAt(0);
        for( i = 1; i <= 9; i += 2 ){
                c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
                if( c > 9 )  c = c - 9;
                s += c;
        }
        if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
                return "La partita IVA non è valida:\n" +
                        "il codice di controllo non corrisponde.\n";
        return '';
Questo è quello che mi sono provata a tradurre da me, ma continua a segnarmi le partite ive come errate.

codice:
  s = 0;
  for( i=0; i<=9; i+=2 )
		s += pi[i] - '0';

  for( i=1; i<=9; i+=2 ){
    c = 2*( pi[i] - '0' );
    if( c > 9 )  c = c - 9;
    s += c;
  }

  if( (10 - s%10)%10 != pi[i] - '0' )
    return "La partita IVA non è valida";
  return "PIVA Corretta" ;
Qualcuno di voi programmatori riesce a capire cosa sto sbagliando?