Ps: это скорее концептуальный вопрос.
Я знаю, что это усложняет ситуацию без веской причины, но вот что мне интересно. Если я не ошибаюсь, const char*
"like this"
в c ++ указывает на l
и будет автоматически обнуляться во время компиляции. Я считаю, что она создает временную переменную const char*
для ее хранения, если она не отслеживает смещение с помощью байтовой переменной (я не проверял разборку). Мой вопрос: как бы вы, если возможно, добавили символы в эту строку, не вызывая функции или создавая строки?
Пример (Это неправильно, просто чтобы вы могли визуализировать, что я имел в виду):
"Like thi" + 's';
Самое близкое, что я придумал, это сохранить его в const char*
с достаточным количеством пробелов и изменить другие символы.
Пример:
char str[9];
strcpy(str, "Like thi")
str[8] = 's';
Пояснение:
Голосование вниз: этот вопрос не требует каких-либо исследований; неясно или бесполезно
Хорошо, поэтому вопрос был высоко оценен. У меня не было много рассуждений о том, чего из моего вопроса не хватало, поэтому я постараюсь улучшить все эти качества.
Мой вопрос был больше, чтобы я мог лучше понять, что происходит, когда вы просто создаете строку "like this"
без сохранения адреса этой строки в const char*
Я также хотел знать, возможно ли объединение / изменить содержимое этой строки без использования таких функций, как strcat()
и без использования перегруженного оператора +
из строки класса. Я знаю, что это не совсем полезно для работы со строками в C ++, но мне было любопытно, был ли способ кроме стандартных способов сделать это.
string example = "Like thi" + "s"; //I'm aware of the string class and its member functions
const char* example2 = "Like this"; //I'm also aware of C-type Strings (CString as well)
Также возможно, что отсутствие английского в качестве родного языка ухудшило положение, извиняюсь за путаницу.