The state [itex]|\pi^+>[/itex] or [itex]|\pi^->[/itex] is not an eigenstate of the charge conjugation operator [itex]C[/itex]. If they were eigenstates you could write [itex]C|\pi^+>= \lambda_c |\pi^+>[/itex] (which is not the case).
This doesn't mean that this operator doesn't affect them...
When it acts on either of those states, it will flip the charges: [itex]C | \pi^\pm > \propto | \pi^\mp >[/itex].
What will happen when it acts on the state [itex]|\pi^+ \pi^->[/itex] ?
Again flipping the charges you get: [itex]|\pi^- \pi^+>[/itex]
That is not very clear without writing the position to distinguish between the pions, so initially (before applying the operator), let's say that [itex]\pi^+[/itex] was at position [itex]r_1[/itex] and [itex]|\pi^->[/itex] at [itex]r_2[/itex]. I denote that statement by writing [itex]\pi^+ (r_1)[/itex] and [itex]\pi^- (r_2)[/itex].
The charge operator then:
[itex]C|\pi^+(r_1) \pi^-(r_2)> = |\pi^- (r_1) \pi^+(r_2)>[/itex]
So it's like it reflected the two pions ([itex]r_1 \leftrightarrow r_2[/itex] , the positive pion is in the position the negative one was, and the negative pion is in the position the positive pion was)... That's why in the end the state [itex]|\pi^+ \pi^->[/itex] in total is an eigenstate of the charge conjugation and the last acts on it like parity does... The eigenvalue is [itex](-1)^L[/itex] for the same reason:
[itex]C|\pi^+(r_1) \pi^-(r_2)> = |\pi^- (r_1) \pi^+(r_2)> = (-1)^L | \pi^+(r_1)\pi^- (r_2)>[/itex]
Angular momentum is not changed in this process, where did you get that impression? The state of two pion [itex]\pi^\pm[/itex] will have some angular momentum from the configuration of the pions, and from that angular momentum you can specify the charge conjugation...
When in Hydrogen atom you were told that the energy (eigenvalue of the hamiltonian) is [itex]E \sim 1/n^2[/itex], how exactly were you changing the quantum number [itex]n[/itex] by applying the hamiltonian?