Задать размер string

314
27 февраля 2017, 12:43

Нужно в string всегда хранить 300 символов.

Как я понимаю память выделяется динамически при присвоении к примеру:

string ex = "Example";

Мне нужно явно присваивать каждому символу значение,

 ex.at(100) = '2';

но при выполнении кода будет ошибка, т.к. не была выделена память, возможно ли указать размер строки явно, как в массиве символов ?

Такой вариант не очень

for(int i=0;i<300;i++)
   ex += " ";
Answer 1

std::string в этом отношении имеет почти ту же внешнюю интерфейсную спецификацию, что и std::vector.

Скажите ей

ex.resize(300);

и будет вам строка размера 300. Эта версия дополняет строку (если необходимо) до размера 300 нулевыми символами. А вариант

ex.resize(300, 'a');

соответственно, дополнит символами 'a'.

Вот чего нет, так это конструктора, соответствующего первой версии resize, т.е. при конструкции символ-заполнитель придется всегда указывать явно

std::string ex(300, 'a');
Answer 2

Попробуйте так:

string s(300, ' ');

Проверка: http://ideone.com/8Hqa7f

READ ALSO
Вывод типа результата функции

Вывод типа результата функции

Пытаюсь вывести тип результата одной функции и подставить его в аргумент другой + добавить ссылку:

212
построчная работа с текстом [дубликат]

построчная работа с текстом [дубликат]

На данный вопрос уже ответили:

233
Передача вектора в функцию С++ [требует правки]

Передача вектора в функцию С++ [требует правки]

В функции main я создаю вектор pТеперь мне необходимо передать его в функцию

280
Как удалить файл после его шифрования?

Как удалить файл после его шифрования?

Всем приветПишу для себя программу, которая шифрует мои файлы алгоритмом AES-256

230