Форум программистов, компьютерный форум CyberForum.ru

Почему срабатывает rtl - C++

Восстановить пароль Регистрация
 
Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
23.09.2012, 18:24     Почему срабатывает rtl #1
Не могу понять, в чем ошибка. Брат делает задания из одной книги и на одной из функций VC++ падает. Я уже долго не работал с C++, может быть, уже что-то забыл и поэтому прошу вас посмотреть этот дурацкий код:
C++
1
2
3
4
5
6
7
8
9
void eatspace (char* str)
{
    int i=0,j=0;
    while ((*(str+i) = *(str+j++))!='\0')
        if (*(str+i)!=' ') 
            i++;
    return;
 
}
Функция просто удаляет пробелы из строки. Ничего сложного, но я не могу найти здесь ошибку, хотя она есть. Действительно, после жабы уже с указателями работать как-то не комфортно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:31     Почему срабатывает rtl #2
Цитата Сообщение от Vega251 Посмотреть сообщение
void eatspace (char* str)
исправте на
C++
1
void eatspace (char* &str)
и тут не совсем получается удаление, скорее сохраненеие до 1 пробела
а не лучше сделать это функцией и формироват новую строку?
Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
23.09.2012, 18:38  [ТС]     Почему срабатывает rtl #3
Цитата Сообщение от Nixy Посмотреть сообщение
и тут не совсем получается удаление, скорее сохраненеие до 1 пробела
Да, мне тоже так думается, да вот только братец делает все по книжке Хортона, а я "жабист, который ни хрена не шарит в приплюснутом си". Мой вариант такой функции ему не подходит.
Сейчас я сам протестирую вашу поправку. В любом случае, спасибо.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.09.2012, 18:40     Почему срабатывает rtl #4
в чем ошибка то заключается?
вот вроде работает:
http://liveworkspace.org/code/392bd6...494ab72cea7d44
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:43     Почему срабатывает rtl #5
ну жабист не жабист, если программное мышление есть , то подход должен быть более гибким

Не по теме:

а ни чо что Java очень много взяла из С++

Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
23.09.2012, 18:46  [ТС]     Почему срабатывает rtl #6
Цитата Сообщение от DU Посмотреть сообщение
в чем ошибка то заключается?
вот вроде работает:
Хотите верьте, хотите нет, но ни на одном компиляторе что у брата, что у меня эта функция сразу же вызывает срабатывание rtl. Поэтому я и обратился за помощью, т.к. все вроде бы верно.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:47     Почему срабатывает rtl #7
Цитата Сообщение от DU Посмотреть сообщение
в чем ошибка то заключается?
вот вроде работает:
http://liveworkspace.org/code/392bd6...494ab72cea7d44
опа и правда работает
а я чушь написал
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.09.2012, 18:49     Почему срабатывает rtl #8
использование [] все таки более привычно глазу. меньше мельтешаших скобочек, плюсиков и звездочек:
C++
1
2
3
4
5
6
7
8
9
void eatspace (char* str)
{
  int i=0,j=0;
  while ((str[i] = str[j++]) != '\0')
  {
    if (str[i] != ' ') 
      i++;
  }
}
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:51     Почему срабатывает rtl #9
Цитата Сообщение от Vega251 Посмотреть сообщение
Хотите верьте, хотите нет, но ни на одном компиляторе что у брата, что у меня эта функция сразу же вызывает срабатывание rtl. Поэтому я и обратился за помощью, т.к. все вроде бы верно.
а покажите код ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 18:54     Почему срабатывает rtl
Еще ссылки по теме:

While срабатывает 2 раза, почему? C++
Почему не срабатывает услоивие ни в одну ни в другую сторону C++
Почему не срабатывает EOF C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
23.09.2012, 18:54  [ТС]     Почему срабатывает rtl #10
Действительно, работает. Проверил на Линуксе. Значит, какой-то глюк в VC++ 2010 Express, странно только, что он не сработал и у меня.
Ладно, всем откликнувшимся спасибо
Yandex
Объявления
23.09.2012, 18:54     Почему срабатывает rtl
Ответ Создать тему
Опции темы

Текущее время: 00:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru