Raga devo convertire un " const char* " in una carta!

Praticamente sto creando un mazzo di carte di 4 colori diversi

const char* GIALLO = "Giallo" ...

Voglio creare il metodo "carta.set_color(GIALLO)"

codice:
char* Carta::ser_colore(const char* color)
{
 return colore_ = color;
}
l'assegnazione nn va a buon fine, ovvio no!?!

Come devo redifinire l'operatore?

Se voglio fare il casting del "const char*" in char* posso usare "sprintf", cioè

codice:
char* Carta::operator=(const char *sorgente)
{ 
 char* temp;
 
 sprintf(temp, "%s", sorgente);
  
 return temp;
}

Che altra soluzione mi consigliate?