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

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

Войти
Регистрация
Восстановить пароль
 
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
#1

Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 - C++

31.05.2013, 23:34. Просмотров 679. Ответов 10
Метки нет (Все метки)

Я ввожу слова без знаков препинания (все подряд через пробел) и нужно:
Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 и более символов, вывести эти слова в последовательности возрастания их длин. Слова очередной длины вывести с новой строки.

Пожалуйста не пишите запутание коды
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 23:34     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10
Посмотрите здесь:

Определить, сколько слов текста из файла имеют определенную длину - C++
Добрый вечер Программа берет данные из текстового файла и должна определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов и...

Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины - C++
Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. Вывести эти слова в последовательности возрастания их длины.

Выделить из текста все слова которые имеют длину 6 символов и начинаются на "С" - C++
Ввести текст состоящий не менее чем из 15 слов. Выделить из текста все слова которые имеют длину 6 символов и начинаются на "С"

Определить процент слов в тексте, которые имеют удвоенную согласную - C++
Определить процент слов в тексте, которые имеют удвоенную согласную. вот код: #include <iostream> #include <string.h> #include...

Список студентов. Определить, сколько среди них имеют одинаковые фамилии - C++
Задание - Текст - это список студентов . Определить , сколько среди них имеют одинаковые фамилии. Господа, спасайте. Преподаватель будет...

Задается произвольный текст, Вычислить среднюю длину слов текста и вывести ее на экран - C++
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не бо-лее 80 символов. Вычислить среднюю длину слов текста и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.06.2013, 00:17     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #2
Так?
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
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <vector>
#include <windows.h>
#include <iterator>
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    
    std::cout<<"Введите тект:\n:->";
    std::string text;
    std::getline(std::cin, text);
    std::istringstream iss(text);
    std::vector<std::string> words( (std::istream_iterator<std::string>(iss)), std::istream_iterator<std::string>() );
    std::sort(words.begin(), words.end(), [](const std::string& a, const std::string& b){return a.size() < b.size();});
    
    for (size_t i = 0; i<words.size(); ++i)
        std::cout<<words[i]<<" # букв "<<words[i].size()<<'\n';
            
    return 0;
}
:
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
01.06.2013, 00:24  [ТС]     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #3
Цитата Сообщение от yuron_477 Посмотреть сообщение
Так?
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
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <vector>
#include <windows.h>
#include <iterator>
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    
    std::cout<<"Введите тект:\n:->";
    std::string text;
    std::getline(std::cin, text);
    std::istringstream iss(text);
    std::vector<std::string> words( (std::istream_iterator<std::string>(iss)), std::istream_iterator<std::string>() );
    std::sort(words.begin(), words.end(), [](const std::string& a, const std::string& b){return a.size() < b.size();});
    
    for (size_t i = 0; i<words.size(); ++i)
        std::cout<<words[i]<<" # букв "<<words[i].size()<<'\n';
            
    return 0;
}
:
работает хорошо, но можете пожалуйста упростить етот фрагмент и без вектора сделать

C++
1
2
3
std::istringstream iss(text);
    std::vector<std::string> words( (std::istream_iterator<std::string>(iss)), std::istream_iterator<std::string>() );
    std::sort(words.begin(), words.end(), [](const std::string& a, const std::string& b){return a.size() < b.size();});
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.06.2013, 00:33     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #4
Я даже не знаю как. Для меня это один из самых простых способов разбивки строки на слова. Предложите свои наработки/предложения.
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
01.06.2013, 00:37  [ТС]     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #5
Цитата Сообщение от yuron_477 Посмотреть сообщение
Я даже не знаю как. Для меня это один из самых простых способов разбивки строки на слова. Предложите свои наработки/предложения.
у меня нет предложений, только начинаю работать со строками, просто неполностью понимаю, но работает все прекрасно
MrGluck
Модератор
Эксперт CЭксперт С++
7159 / 4325 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
01.06.2013, 01:06     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #6
Можно сразу в set пихать. Толку от вектора, если сразу сортировать и выводить?
Вот так упростить можно, я бы проход по контейнерам через итераторы сделал.
А так все просто.
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
01.06.2013, 01:12  [ТС]     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #7
Цитата Сообщение от MrGluck Посмотреть сообщение
Можно сразу в set пихать. Толку от вектора, если сразу сортировать и выводить?
Вот так упростить можно, я бы проход по контейнерам через итераторы сделал.
А так все просто.
можете написать пожалуйста
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.06.2013, 01:43     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #8
Не думаю что это будет вам легче:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <set>
#include <windows.h>
#include <iterator>
 
struct classcomp {
  bool operator() (const std::string& lhs, const std::string& rhs) const
  {return lhs.size() < rhs.size();}
};
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    
    std::cout<<"Введите тект(Ctrd+Z для прекращения):\n:->";
    std::set<std::string, classcomp> words((std::istream_iterator<std::string>(std::cin)), std::istream_iterator<std::string>());
    
    for (std::set<std::string>::iterator it = words.begin(); it != words.end(); ++it)
        std::cout<<*it<<" # букв "<<(*it).size()<<'\n';
            
    return 0;
}
MrGluck
Модератор
Эксперт CЭксперт С++
7159 / 4325 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
01.06.2013, 01:44     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #9
Цитата Сообщение от ChuckNorris Посмотреть сообщение
можете написать пожалуйста
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
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <set>
#include <iterator>
#include <clocale>
 
bool cmp(const std::string &lhs, const std::string &rhs)
{
    return lhs.size() < rhs.size();
}
 
typedef std::multiset<std::string,
    bool(*)(const std::string &, const std::string &)> multiset_str;
typedef std::istream_iterator<std::string> input_str;
 
int main()
{
    setlocale(LC_ALL, "");
    std::cout<<"Введите тект:\n:->";
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    multiset_str words((input_str(ist)), input_str(), cmp);
    for (auto &word: words)
        std::cout << word << " # букв " << word.size() << std::endl;
}
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.06.2013, 01:53     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #10
MrGluck, а нельзя ли второй параметр шаблона set как то по ссылке передавать, как обычную функцию?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 02:03     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10
Еще ссылки по теме:

Определить среднюю длину слов в предложении - C++
В введенном предложении определить среднюю длину слов в буквах (знаки препинания, числа и другие символы не учитывать)

Необходимо определить длину каждой строки, определить сколько символив первой и второй строки совпадают - C++
Приветик всем)) Очень нужна помощь. Помогите решить некоторые задачи. 1. Пускай мы имеем массив 5 на 5. Необходимо отсортировать...

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

Определить, сколько учеников имеют по информатике оценку "5" - C++
1.Известны оценки по информатике каждого из 20 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки....


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7159 / 4325 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
01.06.2013, 02:03     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10 #11
yuron_477, можно либо как указатель на функцию, либо как функциональный объект.
Yandex
Объявления
01.06.2013, 02:03     Определить, сколько слов текста имеют длину 1, 2, 3, ..., 10
Ответ Создать тему
Опции темы

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