A Charleston police officer found more than 100 grams of cocaine, 80 grams of marijuana, cash and three guns during a traffic stop Thursday, police said.

Justin Arthur Rivers, 22, of 6th Avenue in Mount Pleasant, is charged with possession of marijuana with the intent to distribute, trafficking cocaine, trafficking cocaine base, unlawful carrying of a handgun and possession of a firearm during the commission of a violent crime.

Officer Jonathan Brewer pulled Rivers over on Meeting Street at 4 a.m. after he saw the car drifting in and out of lanes, according to police.

Brewer said he could smell marijuana as he approached the car. Officers said they confiscated 111.5 grams of cocaine, 10.2 grams of cocaine base, 80.6 grams of marijuana, more than $3,400 in cash, two handguns and an SKS semiautomatic rifle.

Reach Natalie Caula Hauff at 937-5594 or Twitter.com/ncaula.

NOTE: Police gave an incorrect address for Rivers in an earlier version of this story.