El problema se debe al uso del operador ">>", cuando su operando es de tipo "char *" este lee (y almacena en la dirección indicada) una palabra. La solución es utilizar la función std::istream::getline, una opción mejor es utilizar la clase string y la función std::getline.
Un saludo
Un saludo