![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
есть функция
|
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
|
|||
|
||||
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
Большое спасибо!
|
|||
|
||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
bel_nikita, использовать для этих целей sprintf - из пушкт по воробьям.
use strcat -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
UnixBeginner, прочитай вот это: СИ СТРОКИ ИЛИ НЕМНОГО ТЕОРИИ
Добавлено @ 01:48 и вот это: Сложение строк -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
Я конечно понимаю, sprintf() возможно не оптимальный способ, но просто strcat() кпримеру не работает - программа вылетает просто.
|
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Естественно, не работает. Во-первых, в str не зарезервировано места для дописываемой строки (первый параметр функции strcat является одновременно и буфером), а во вторых это вообще указатель на строковую константу, которую менять нельзя. Тебе зачем ссылки дали почитать?! -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
А если мне не известен размер будущей строки. А слишком большой объем неохото вводить? Всеж конкатенация SQL запросов!
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
что значит неизвестен?
он будет равен длине текущей строки + длина приклеиваемой строки + 1 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
А std::string уже не в моде?
|
|||
|
||||
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
Ну ладно, был не прав
|
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
А нельзя ли вмесно char *, использовать std::string ?
Ну и потом склеить их оператором сложения. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| UnixBeginner |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.11.2005 Где: Россия, г. Калини нград Репутация: нет Всего: нет |
std::string можно, но функция требует в качестве параметра const char *
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
ну так пользуйся string'ом а далее ф-ции отдай указатель на char
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
а что тебе мешает?
|
||||||
|
|||||||
| kirjanov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2006 Где: Dark wood of erro r Репутация: 1 Всего: 15 |
лучше использовать strncat() или snprintf() ;)
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Не знаю как
кому чем удобнее ЗЫ А вооще то , имхо, в реализации класса string суммирование так и сделанно через -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Скорее нет, чем да по нескольким причинам. 1) Вообще говоря не существует шаблонной ф-ции str[n]cat. А basic_string<char> - это всё же шаблонный класс. wcscat это конечно очень хорошо, но будут ли разработчики заморачиваться на этот счёт? 2) Длина строки скорее известна заранее(она shouldвычислятся за константное время (в SUS3 по поводу should сказано
В случае константного size() использовать strcat крайне не разумно (strcat(str,append) по своей сути это в точности strcpy(str+strlen(str),append);, а линейный strlen() нам не нужен - мы можем узнать его значение за константное время). А вот это реализация из гнуса:
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |