To read in text with spaces, use getline instead of >>. It has nothing to do with char str[50] versus string.
Both getline and >> work with strings and character arrays (there is a different version for each). If you are having a problem, post the code and example input.