![]() |
|
Модераторы: bsa |
![]()
|
|
| clarkkent |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.3.2008 Репутация: нет Всего: нет |
Доброе утро! Реализовал класс строки на примере представленного ниже кода. как сделать так чтобы пользователю можно было добавить по одному символу в строку? у меня это не получается здесь..
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
clarkkent,
в конструкторе ты затираешь строку нуль-терминатором buf[0]=0; надо так: buf[1]=0; в функции str ты не учитываешь размер уже имеющейся строки, поэтому происходит выход за границы массива. len = 1 + strlen(buf); // размер, достаточный для старой строки + 1 символ лучше используй функции с ограничителем выходного буфера - strncpy, strncat etc - класс тогда всё равно будет работать неправильно, но по крайней мере не будет возникать Undefined Behavior. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
clarkkent, создай метод для добавления символов, которому в качестве параметра нужно передавать char. Наиболее логично для этой цели использовать operator+=:
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |