Если вам нужна изменяемая строка, вы должны использовать следующее
char str1[]="string 1";
В C ++ вы не можете преобразовать строковый литерал в неконстантный, в C вы можете, но эта практика не рекомендуется.
Обновление.
В C ++ вы можете сделать следующее
char *str1 = (char *)"string 1" ; // (1)
Но вы не должны использовать этот указатель для изменения значения строки.