| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Массивы |
| Автор: blooddss 1.6.2011, 10:50 | ||
| Задача:Функция находит в строке фрагменты, содержащие последовательность одинаковых символов длиной более 3 и возвращает динамичесмкий массив указателей на такие фрагменты Проблемма состоит в том что компилируеться,но ничего не выводит,подскажите пожалуйста что не так.. Код
|
| Автор: bsa 1.6.2011, 10:54 |
| blooddss, оформлять код тебя не учили? Совсем ничего не выводит? Даже "Введите строку"? кстати, "void main()" это не правильно, надо писать "int main()". |
| Автор: xvr 1.6.2011, 16:05 |
Прелестная конструкция |
| Автор: porshegt3 10.6.2011, 15:44 |
| для начала оформи верно, потом можно рассмотреть твой код. |
| Автор: borisbn 11.6.2011, 03:22 |
| >if (str[i] == str[i++] == str[i+2]) { Результат первого сравнения всегда true. Дальше str[i+2] сравнивается с ним. Считаешь это правильным? > for (int j = i+2; str[j] == str[j++]; j ++) str[j] всегда равно str[j++], т.к. ++ отработает после сравнения. Нужно str[j+1] |
| Автор: bsa 13.6.2011, 18:52 | ||
А вот и неверно. Это типичное UB. |
| Автор: borisbn 13.6.2011, 19:20 |
в принципе, конечно UB, но... мы ж не в сферическом вакууме http://liveworkspace.org/code/f269cf8d97cfc09f1bf2aaeb2c0489fc |
| Автор: mes 13.6.2011, 19:22 |
нда... |
| Автор: bsa 13.6.2011, 19:24 |
да. сегодня один результат, завтра другой, после завтра третий. Оно надо? Мне нет. Проще написать j+1 и спать спокойно. |