Во-первых, для объявления простой строки вам не нужны указатели:
std::string str;
Чтобы заполнить строку содержимым заданного размера, вы можете использовать соответствующий конструктор:
std::string str( width, ' ' );
Для заполнения строк вы можете использовать метод замены:
str.replace( pos, length, length , '#' );
Вы должны сделать удобные проверки.Вы также можете напрямую использовать итераторы.
В более общем случае для контейнеров (строка является контейнером символов), вы также можете использовать алгоритм std :: fill
std::fill( str.begin()+pos, str.begin()+pos+length, '#' );