How can i change my characters hair styles and clothing and keep it rigged?

As far as I know, what you want is a modular skeletal mesh. The idea is to split the mesh into parts. So in your case the cloths, top of the head and the rest of the body will each be a separate skeletal mesh but all rigged to the SAME skeleton. So you have one skeleton and multiple meshes.

Once you do that, you can create many skeletal mesh components inside your character and assing different skeletal mesh parts to each of them. Since all of them are using the same skeleton, they will follow the animation correctly. If you then want some physics simulation for you hair, you can do that in Phat

read these for more info (its in C++ however):