![]() |
|
Модераторы: bsa |
![]()
|
|
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: -1 Всего: 0 |
Всем добрый вечер! Как всегда, практикуюсь по книжным примерам. Вот дошёл до темы реверсирования строк, то есть расположения букв в обратном порядке. Столкнулся с таким кодом, и не ясен стал цикл,то есть как именно происходит замена букв в нём?
Если кто может, подскажите,если не сложно? Не ясен сам цикл, и строка перед ним: end = &str[len-1]; Заранее благодарю. Вот исходник:
Это сообщение отредактировал(а) Golovastik - 7.9.2009, 23:33 |
|||
|
||||
| ller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
end = &str[len-1]; Адрес предпоследнего элемента массива. В С строка заканчивается \0 символом, и он всегда последний.
А вообще есть такая вещь как деагер, пошаговый проход очень помогает, все видно что куда, откуда. Это сообщение отредактировал(а) ller - 7.9.2009, 23:41 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
если С, то strrev
|
|||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: -1 Всего: 0 |
Что-то я не могу понять вот эту строку:
Ведь смотрите, строка Россия - щедрая душа, занимает 20 символов+нулевой символ окончания = 21. Теперь происходит такое условие: "Пока 21(тоесть start) < 20(end)". Как может 21 быть меньше 20,ведь тогда цикл прекратится сразу. Как это понимать? |
|||
|
||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Здесь start и end адреса в памяти, start указывает на начало массива(строки), а end на конец массива(строки) и с каждым шагом(start++, end--) они "приближаются" к центру, то есть друг к другу, и пока start не "перепрыгнул" через end, цикл будет продолжатся. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
![]()
|
| Правила форума "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. |