![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Procoffeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
Здравствуйте!
вот есть функция:
собственно вопрос... strcat фыркает на bstr[i] c типом (char), так как второй параметр должен быть (const char *). Подскажите пожалуйста как обойти такую проблемку. Спасибо. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
strcat(bstr1, &bstr[i]);
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Procoffeev |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
не прокатит =((
вот проверочный код с &bstr[i]:
выводит:
Это сообщение отредактировал(а) Procoffeev - 27.9.2008, 23:25 |
||||
|
|||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
Тут надо с символами в строке работать а не со строкой - strcat здесь не нужен.
|
|||
|
||||
| Procoffeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
все работает! Спасибо!
только не могу понять запись: while(s >= src), это значит пока адрес s больше или равен адреса src? попробовал с другим условием:
программа зацикливается, и выдает всякую чушь Это сообщение отредактировал(а) Procoffeev - 28.9.2008, 13:07 |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
это и понятно. Ты устанавлиаешь указатель на нулевой элемент (условие равенства), а потом уменьшаешь в цикле (для наглядности, что-то типа s = -1;-2;-3...) выполняется условия "меньше" -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| Procoffeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
нет. плохо что весь код не написал сразу, мысли тяжело читать
вот код:
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
это если у тебя символьная строка с завершающим нулем. Если нет, то надо передавать размер.. А вообще почему ф-ия называеться инверт? это же обычный strcpy Это сообщение отредактировал(а) vinter - 28.9.2008, 15:26 |
|||
|
||||
| Procoffeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
invert_code потому что она таковой и была с начала, но потом я задал другой вопрос:
пост выше:
т.е. программа не останавливается на условии while(s <= src) , а лезет в чужое адресное пространство Это сообщение отредактировал(а) Procoffeev - 28.9.2008, 15:46 |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
Зацикливается потому, что в цикле не указано условие, где заканчивается строка.
Си-шные строки заканчиваются нулевым символом. Коротко это записывается так:
|
|||
|
||||
| Procoffeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
Спасибо за объяснение! Разобрался!
Это сообщение отредактировал(а) Procoffeev - 28.9.2008, 21:20 |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Самое простое, на мой взгляд, это использовать strncat вместо strcat:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |