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

Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв - C++

Восстановить пароль Регистрация
 
leonid_dinoel
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 16
11.06.2013, 18:23     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #1
С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв. То есть со слов "aab" и "abc" нужно удалить "abc". Помогите, а то никак не выходит...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 18:23     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
Посмотрите здесь:

C++ найти самое большое слово в строке
Посчитать количество букв и найти самое длинное слово C++
C++ находит такое, в котором наибольшее количество разных букв.
C++ количество букв в слове, количество предложений, самое длинное слово в предложении
C++ Массив: Удалить строку, в котором есть слово, имеющее наибольшее количество разных букв.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
11.06.2013, 18:28     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #2
leonid_dinoel, результат записать в тот же файл/другой файл/вывести на консоль?
leonid_dinoel
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 16
11.06.2013, 19:07  [ТС]     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #3
В тот самый файл записать

Добавлено через 11 минут
MrGluck, сможешь помочь?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
11.06.2013, 19:19     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <fstream>
#include <vector>
#include <string>
#include <utility>
#include <algorithm>
#include <iterator>
 
typedef std::pair<std::string, int> comb; // слово и сколько в нем разных букв
typedef std::vector<comb > vec_comb;      // вектор комбинаций
 
int uniqueChars(std::string s)
{
    std::sort(s.begin(), s.end());
    return std::distance(s.begin(), std::unique(s.begin(), s.end()) );
}
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    vec_comb v;
    for (std::string word; !ifs.eof() && ifs >> word;
        v.emplace_back(word, uniqueChars(word)) );
 
    auto it = std::max_element(v.begin(), v.end(),
        [](const comb &c1, const comb &c2) { return c1.second < c2.second; } );
    v.erase(it);
 
    ifs.close();
    std::ofstream o("input.txt");
    for (auto &word : v)
        o << word.first << " ";
}
leonid_dinoel
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 16
11.06.2013, 21:45  [ТС]     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #5
MrGluck, почему у меня показывает ошибку в строке
C++
1
v.emplace_back(word, uniqueChars(word)) );
у меня компилятор Dev C++

Добавлено через 10 минут
MrGluck, знакомый только что компилировал на Вижуал Студио, то тоже не компилит...
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
11.06.2013, 22:01     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #6
C++11 нужен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2013, 22:48     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
Еще ссылки по теме:

С++: подсчитать количество знаков и вывести самое большое значение C++
Вывести имя и количество букв в фамилии. Вывести самое длинное слово C++
Вывести имя и количество букв в фамилии. Вывести самое длинное слово C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
11.06.2013, 22:48     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв #7
leonid_dinoel, emplace_back - метод вектора, добавленный в стандарте С++11.
Но не только на него будут ругаться компиляторы, не поддерживающее новый стандарт, еще и на лямбда-функцию, auto, for-цикл по коллекции.
Yandex
Объявления
11.06.2013, 22:48     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
Ответ Создать тему
Опции темы

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