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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vega251
290 / 93 / 3
Регистрация: 07.09.2011
Сообщений: 477
Записей в блоге: 2
#1

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

23.09.2012, 18:24. Просмотров 333. Ответов 9
Метки нет (Все метки)

Не могу понять, в чем ошибка. Брат делает задания из одной книги и на одной из функций 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;
 
}
Функция просто удаляет пробелы из строки. Ничего сложного, но я не могу найти здесь ошибку, хотя она есть. Действительно, после жабы уже с указателями работать как-то не комфортно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 18:24     Почему срабатывает rtl
Посмотрите здесь:

Почему не срабатывает инкремент? - C++
В комментарии показал вывод программы. Все переменные почему равны 2 Получается инкремент не оказывает никакого влияния? int a=0,...

Почему не срабатывает EOF - C++
У меня стоит Visual Studio 2010 написал простенькую программу #include "stdafx.h" #include <stdio.h> int main() { int...

Не срабатывает условие. Почему? - C++
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { ...

Почему не срабатывает getline() ? - C++
Все привет почему то не срабатывает первый getline string comp_; cout << "1. Название: " << endl; getline(cin, comp_); cout...

While срабатывает 2 раза, почему? - C++
Сообственно код void main() { while(true){ cout<<"|y|"; _getch(); }

Почему не срабатывает if, если истина? - C++
Вообщем задание на двумерную динамику. Есть 2 кучки камней. Входной файл содержит 3 строчки в первых двух - команды которые можно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
400 / 281 / 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
290 / 93 / 3
Регистрация: 07.09.2011
Сообщений: 477
Записей в блоге: 2
23.09.2012, 18:38  [ТС]     Почему срабатывает rtl #3
Цитата Сообщение от Nixy Посмотреть сообщение
и тут не совсем получается удаление, скорее сохраненеие до 1 пробела
Да, мне тоже так думается, да вот только братец делает все по книжке Хортона, а я "жабист, который ни хрена не шарит в приплюснутом си". Мой вариант такой функции ему не подходит.
Сейчас я сам протестирую вашу поправку. В любом случае, спасибо.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.09.2012, 18:40     Почему срабатывает rtl #4
в чем ошибка то заключается?
вот вроде работает:
http://liveworkspace.org/code/392bd6...494ab72cea7d44
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:43     Почему срабатывает rtl #5
ну жабист не жабист, если программное мышление есть , то подход должен быть более гибким

Не по теме:

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

Vega251
290 / 93 / 3
Регистрация: 07.09.2011
Сообщений: 477
Записей в блоге: 2
23.09.2012, 18:46  [ТС]     Почему срабатывает rtl #6
Цитата Сообщение от DU Посмотреть сообщение
в чем ошибка то заключается?
вот вроде работает:
Хотите верьте, хотите нет, но ни на одном компиляторе что у брата, что у меня эта функция сразу же вызывает срабатывание rtl. Поэтому я и обратился за помощью, т.к. все вроде бы верно.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 18:47     Почему срабатывает rtl #7
Цитата Сообщение от DU Посмотреть сообщение
в чем ошибка то заключается?
вот вроде работает:
http://liveworkspace.org/code/392bd6...494ab72cea7d44
опа и правда работает
а я чушь написал
DU
1482 / 1058 / 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
400 / 281 / 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
Еще ссылки по теме:

Почему не срабатывает специализация шаблона? - C++
#include <iostream> #include <clocale> using namespace std; struct box { char mak; float m; float n; float y; float...

Почему не срабатывает услоивие ни в одну ни в другую сторону - C++
mingw char S1="Hello"; char S2={}; cin.getline(S2,255); if (S1==S2) cout<<"OK"; else cout<"NO"; Не выводит...

Почему не срабатывает конструктор копирования в пользовательском классе - C++
вроде со всем разобралась, но не заходит в конструктор копирования. В чём ошибка? #include <iostream> #include "welcome.h" ...

Не срабатывает условие в цикле while не могу понять почему - C++
При решении задачки в которой необходимо сделать игру Однорукий Бандит, наткнулся при тестировании что одно из условий цикла while не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru