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

Работа функции remove_copy_if () - C++

Восстановить пароль Регистрация
 
tramp_1-3
 Аватар для tramp_1-3
14 / 14 / 1
Регистрация: 13.10.2012
Сообщений: 428
17.07.2013, 20:14     Работа функции remove_copy_if () #1
вот такая функция проверки является ли выражение в строке палиндромом
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool IfPolyndrom (string  phrase) {
    string temp;
    remove_copy_if (phrase.begin (), phrase.end (), temp.begin (), NotChar);//удаляет НЕ буквы
    
    string reversed (temp);
    transform ( temp.rbegin (), temp.rend (), reversed.begin (), ToLower);//переводит в нижний регистр и записывает в обратном порядке
    cout << "   " << reversed;
    transform ( temp.begin (), temp.end (), temp.begin (), ToLower);//переводит в нижний регистр
    cout << "   " << temp;
    
    return  (temp == reversed);//всегда верно, ибо обе строки пусты (наверно)
};

известно и проверено, что строка передается корректно и функция NotChar ведет себя тоже как надо, но вот результирующая строка в temp не копируется и отладочные выводы пустуют, что делать?

Добавлено через 3 минуты
Сейчас иду спать, весь вечер над этим сидел, отвечу завтра.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2013, 20:14     Работа функции remove_copy_if ()
Посмотрите здесь:

C++ Лабораторная работа Функции
функции и работа с файлами C++
C++ функции работа с числами
Работа функции strdup C++
C++ Работа функции unique_copy ()
C++ Работа функции qsort - объяснить работу функции
C++ Remove_copy_if

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
17.07.2013, 20:33     Работа функции remove_copy_if () #2
Цитата Сообщение от tramp_1-3 Посмотреть сообщение
C++
1
remove_copy_if (phrase.begin (), phrase.end (), temp.begin (), NotChar);
temp же пустая строка.
C++
1
remove_copy_if (phrase.begin (), phrase.end (), std::back_inserter(temp), NotChar);
tramp_1-3
 Аватар для tramp_1-3
14 / 14 / 1
Регистрация: 13.10.2012
Сообщений: 428
18.07.2013, 04:44  [ТС]     Работа функции remove_copy_if () #3
Цитата Сообщение от gray_fox Посмотреть сообщение
temp же пустая строка.
Огромное спасибо, всё работает.
Yandex
Объявления
18.07.2013, 04:44     Работа функции remove_copy_if ()
Ответ Создать тему
Опции темы

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