Well, as you've probably noticed already, Charizard is deceptively fast. The nair and glides also give him a lot of aerial control, but the one thing that probably doesn't make him the most godly character in the game is his sheer size.
Charizard's huge size makes him a bit too easy to juggle, and it makes him extremely susceptible to projectiles. Charizard is not a fan of projectiles. His main way to deal with them is his jab or a RAR Nair but usually by the time he's done with that, you have a small window of opportunity to start juggling away at him.
Link does really well against Charizard in my opinion, if he utilizes his projectiles well.
Fox is godly against Charizard, mainly due to it being Fox. He's fast enough to juggle Charizard around while keeping his distance.
However, the character I have the worst time against is probably Sonic; Charizard's mainly a punisher, so Sonic's speed doesn't allow Charizard to punish properly. Also, Sonic's Up+B is a good counter to a Charizard who's going for an Up+B off the top kill. The spring gives him enough distance to avoid the spin and the spring itself also helps to either hit or stun the Charizard trying it.
If it's the Nairs and the glides that are giving you trouble though, keep your distance, and wait for the Nair and then punish. A Charizard will most likely play the neutral game using Nair, so if you can find an opening during its animation, rush in and do what you can. When it comes to Glides, if they're directly approaching you, attack earlier than you normally would. His Glide attack is basically a sideways version of his Up+B, you need to take priority by attacking first in order to avoid that.
TLDNR: Charizard is a huge ass punisher who doesn't like being attacked from afar. Use projectiles or outspeed him and beat him at his own punishing game.