St. Louis man charged in carjacking