В самых популярных ответах пропущена небольшая проблема.А именно, массив символов может содержать 0. Если мы будем использовать конструктор с одним параметром, как указано выше, мы потеряем некоторые данные.Возможное решение:
cout << string("123\0 123") << endl;
cout << string("123\0 123", 8) << endl;
Вывод:
123
123 123