This is a very general answer, but let me point you in the right direction at least. If you are looking at a molecular system such as C6H6, you will likely want to use a non-periodic code such as Gaussian. This page describes many different methods of charge analysis and you can use this information to calculate charge transfer complexes and local charges on ...
Complementing the answer by @Tristan, in this question you will find the several methods used to determine the atomic charges.
Also, you can use Gaussian to calculate/export the wavefunction and them use Multiwfn package to estimate the system charges using several approaches:
Population analysis. Hirshfeld, Hirshfeld-I, VDD, Mulliken, Löwdin,
The Bader Charge Analysis can do just this. If you can get your charge density into a CHGCAR format, you can use this program with any code. It will divide the charge density into volumes by looking at the zero flux surfaces between atoms. This is just one example of a atom in molecule analysis though, but one that is particularly robust for planewave ...
There are couple of options:
Charge density difference (plot in vesta is easy). Take CHGCAR(A+B) and subtract CHGCAR(A) and CHGCAR(B). It can be easily done in vesta >edit> volumetric data
Mulken population analysis (use chgmol programme)