The clear difference between the 2 is that an array is a fixed size and a vector is variable...
Arrays should be more efficient and take up less room due to them having a few less functions and members but the difference is tiny.
Most people just use arrays anyway for nearly everything unless it specifically needs to change in size.
The C++ Coding Standards ( http://amzn.to/Xc7VcR ) says:
item 76: Use vectors by default
item 77: Use vector and string instead of arrays
It's really difficult to come up with justified use of arrays, especially in modern C++ (but if you do, then use them, of course. Item 76 says just that: "If you have a good reason to use a specific container type, use that container type knowing that you did the right thing" and Item 77 adds: "An array can be acceptable when its size really is fixed at compile time".
Don't forget that vectors are a lot faster than arrays if you ever need to swap or move them around (e.g. to rearrange a container of them)
Use std::string instead of char.
Use std::vector instead of pretty much any other kind of array.
Use std::array for when you don't need to be able to resize (careful, these have a size limit).
Use std::unique_ptr for dynamically allocated arrays.