powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / конкатенация строки в одну переменную
25 сообщений из 60, страница 1 из 3
конкатенация строки в одну переменную
    #39480945
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять почему так гиморойно присвоить одно значение переменной типа "текст" и прибавить к нему еще текст и еще текстовую переменную. Во всех языках это обычно. А на С++ меня аж бесит.

s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно)

s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число

Это как по проще на С++ делается чтоб не материться?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480958
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

sprintf
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480960
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если по модному, молодежному то std::stringstream (или более старый поток std::strstream << "XX" << std::ends;)
https://habrahabr.ru/post/131977/
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480964
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480965
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
Потому что это тормоз. Брутальных тормозов не бывает.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480970
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbА почему во всех недоязыках можно просто склеить через + или другой символ, а в брутальном С++ нельзя?
Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480972
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
Как раз в С++ это принципиально возможно, потому что есть operator overloading, в отличие от многих других.

Но,... не нужно. Уже заложен смысл

Есть только сложение строк
http://www.cplusplus.com/reference/string/string/operator /

Хочешь - допиши сам.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480973
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480975
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
stream << settbase(16) << setprecision(3) << xx;

мне неудобно
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480976
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159s=ВводИнформацииТипаТекст(ТОЛЬКО НЕ КОНСОЛЬ!!! достали кусок текста из файла, веб страницы - неважно)

s=s + " еще текст" + " еще текст результат от парсинга" + функцияСВозращениемТекста + число

Это как по проще на С++ делается чтоб не материться?

А в чем проблема-то?
Код: plaintext
1.
2.
std::string s = "текст";
s=s + " еще текст" + " еще текст результат от парсинга" + std::to_string(123);
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480977
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Потому что это тормоз. Брутальных тормозов не бывает.

или это принципиально невозможно?
Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480978
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


или это принципиально невозможно?
Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.

А разве string не так работает?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39480998
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Ты пойми что A+B+C это сначала выделить память под A+B, затем выделить под (A+B) + С, т.е. это тормоз, поэтому sprintf, где сразу выделится память под итого. С++ под тормоза не заточен.

А разве string не так работает?
нет. это две последовательные несвязанные операции.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481000
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481008
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.

Ты выделишь память один раз перед вызовом sprintf'a. А при плюсовании - столько раз, сколько аргументов.

Тормоза простого парсинга невелики, и уж гораздо быстрее сис.вызова выделения памяти
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481009
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+= или append сделать религия не позволяет?

у брутальных кроме + есть ещё StringBuffer/StringBuilder
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481010
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglи уж гораздо быстрее сис.вызова выделения памяти
это вряд ли системный вызов - просто выделение памяти из локальной кучи
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481013
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSiemarglи уж гораздо быстрее сис.вызова выделения памяти
это вряд ли системный вызов - просто выделение памяти из локальной кучиПредлагаю посмотреть исходники RTL
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481019
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому она теперь надо эта скорость и эта память... разве что если на Arduino свой сервер писать.. И так система все убивает и память и хард и скорость. В 2005 году я думал после 7рки Виндовс выйдет какой-то 3D виндовс. Вышло какое-то гавно, после него еще лучше и потом не знаю что это было такое, куда пропали тени от элементов. 10лет прошло. Память под систему увеличилась в двое, а если подумать виндовс это набор элементов и готового функционала для программистов. В итоге что за 10 лет изменилось в лучшую сторну. Разве что начали следить и замахивать обновлением особенно когда нужно срочно выключить и кудато идти. А борьба с вирусами только на словах. Автозапуск отключил и 8 лет без антивирусника и без проблем, а они что-то там борятся. Только фоновые приложения увеличились от 18 к 60. О расходе памяти можно точно не беспокоится.
Спасибо за std::string s
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481022
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159кому она теперь надо эта скорость и эта память..
представь себе - нужна

не только в танчики люди играют
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481023
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. а что говорить а Питоне, в котором чтоб написать цыкл от 1 к 100 нужно использовать массив от 1 к 100. Это ж как интересно на машинном коде все будет работать?))))) На этом уроке я и закончил свое обучение начал гуглить все о скорости Питона и сравнении. Сам потестил также. Ой и медляра... Логика не подвела. Но рейтинг языка зашкаливает. Так и не понял в чем прикол популярности.
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481026
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

не путай массив с генератором
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481043
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima Tпоэтому sprintf, где сразу выделится память под итого

Не выделится сразу. Это тоже будут двухступенчатые тормоза, помноженные на парсинг строки
формата.


А сколько это в минутах?
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481118
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЛично мне в операции сложении не хватает возможностей форматирования, которые есть sprintf
Siemargl
Код: plaintext
1.
stream << settbase(16) << setprecision(3) << xx;


мне неудобно

http://www.boost.org/doc/libs/1_64_0/libs/format/doc/format.html#examples
...
Рейтинг: 0 / 0
конкатенация строки в одну переменную
    #39481177
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а байт из значением 0 чтоб сохранить в переменную нужно еще и экранировать?

А каким вы пользуетесь самым быстрым, но может не самым удобным способом? (в приоритет быстродействия)
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / конкатенация строки в одну переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]