Как увеличить длину строки
Перейти к содержимому

Как увеличить длину строки

  • автор:

Изменение размера строки

Author24 — интернет-сервис помощи студентам

Мне почему-то кажется что я просто на просто упустил какую-нибудь маленькую деталь.
Как правильно её прописать?

Добавлено через 21 минуту
Ну ладно, либо я втупил тогда, либо туплю сейчас, size и resize это же только для char?
Если да, то как изменить размер string?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Изменение размера массива
Здравствуйте. Я хочу написать массив в который записываются введенные данные. Массив должен.

Изменение размера изображения
Всем привет! Помогите написать скрипт изменения размера изображения. Скрипт создания скриншота .

Изменение размера массива
Подскажите плиз, как на С++ изменить размер массива, есть например int *pi = new int; А.

Изменение размера матрицы
столкнулся с проблемой: vectorB(7,"-"); vector<vector>A(7,B); //так задаю массив размером 7*7 .

125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788

ЦитатаСообщение от Ghost_osnk Посмотреть сообщение

how to change the length of string

When a string is created, whether the length of the string is constants? How can I change the length of the string? I only know that s.length() return the length of the string, but don’t know how to change it. thank you.

57.1k 17 17 gold badges 101 101 silver badges 155 155 bronze badges
asked Nov 29, 2014 at 16:49
1 1 1 silver badge 2 2 bronze badges

What does «changing» mean? Do you want to chop something off, or insert something? (You can do both of those.)

Nov 29, 2014 at 16:51

The formulation of your question is unclear. With what goal in mind do you want to change the length of the string?

Nov 29, 2014 at 16:51
Why do you want to change the length of string
Nov 29, 2014 at 16:53

Find documentation on std::string and read it. You cannot expect to ask StackOverflow every time you have a really, really basic question about the tools you are using.

Nov 29, 2014 at 16:54

@ravi «Why do you want to change the length of string». Indeed it is very suspicious that he has such seditious thoughts!:)

Nov 29, 2014 at 17:25

2 Answers 2

«When a string is created, whether the length of the string is constants?»

No, the std::string class is designed to manage the memory occupied by the underlying char array dynamically (and thus changing it’s length).

«How can I change the length of the string ?»

There are many ways, to change the length() value of a std::string instance. One for example is the std::string::resize() function.

answered Nov 29, 2014 at 16:51
smart answer. but irrelevant till OP justifies the reason for doing so.
Nov 29, 2014 at 16:54

@ravi There are plenty of reasons to change the length of a string. the OP doesn’t have to justify anything.

Nov 29, 2014 at 17:06

@CaptainObvlious What if OP wanted to change length by eliminating characters from the beginning of the strings. Does this take it into account.

Nov 29, 2014 at 17:09

@ravi I voted to close the question because of «Unclear what you asking». If you think the question is unclear, downvote/flag/closevote or answer. You have enough rep to do so .

Nov 29, 2014 at 17:11

You can use method resize that is overloaded for class std::string

std::string s( "Hello" ); s.resize( 10 ); 

In this case the string will be appended with zeroes ( ‘\0’ ). or

std::string s( "Hello" ); s.resize( 10, ' ' ); 

In this case the string is appended with blanks.

Also you can use method append. For example

std::string s( "Hello" ); s.append( 10 - s.size(), char() ); 
std::string s( "Hello" ); s.append( 10 - s.size(), ' ' ); 

These code snippets are equivalent to the previous code snippets.

Take into account that if you will create a constant string then indeed its length will be constant.:) For example

const std::string s( "Hello" ); 

The length of the string is 5.

If you mean character arrays then in C++ you may not change their lengths because they shall be constant expressions. Though some compilers have some language extensions.

In C you can use variable length arrays.

Как увеличить максимальную длину string в C++?

у меня есть массив символов и мне нужно вставить туда строку весом примерно 27 килобайт. Visual Studio выдает мне ошибку: «Слишком большая строка, замыкающие знаки сокращены». Как мне можно увеличить размер максимальный и возможно ли хранить до 100 мегабайт и выше?

Отслеживать

задан 16 июл 2023 в 21:36

21 3 3 бронзовых знака

Так, наверное, неправильно сто мегабайт вбивать ручками, и не каждому это под силу, Если эти данные есть в виде файла, их можно подключить в программу в качестве ресурса (по крайней мере в виндах такое есть) или вообще читать из отдельного файла во время работы, т.к при вшитии данных внутрь исполняемый файл в полгига может насторожить 😉

17 июл 2023 в 2:42

Или это вообще «албанский вирус»? (глядя на соседний вопрос)

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

Нужно в string всегда хранить 300 символов. Как я понимаю память выделяется динамически при присвоении к примеру:

string ex = "Example"; 

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

 ex.at(100) = '2'; 

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

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

Отслеживать
задан 24 фев 2017 в 22:59
1,149 2 2 золотых знака 12 12 серебряных знаков 27 27 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

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

ex.resize(300); 

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

ex.resize(300, 'a'); 

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *