Occhio perché scrivendo
char *a;
a="ciao";
non stai "mettendo una parola nel contenitore" (se per te vuol dire memorizzare in un buffer di memoria la parola indicata) ma semplicemente stai assegnando al puntatore che chiami "a" il valore del puntatore della stringa costante in memoria. E lo fai soltanto con le costanti.
Dato che adesso vuoi fornire un dato in input, non userai più costanti ma variabili. E questo vuol dire che dovrai prevedere uno spazio per il vettore di char, ad esempio
char a[100];
cin >> a;
Ma lo stream cin si usa in C++ e in C++ si usano gli oggetti string non i vettori di char, ovvero
string a;
cin >> a;