Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
linuxubuntu
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 55
#1

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

04.10.2012, 14:11. Просмотров 460. Ответов 3
Метки нет (Все метки)

Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. Вывести эти слова в последовательности возрастания их длины.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины (C++):

Дана строка, вывести слова наименьшей длины в порядке возрастания - C++
Здравствуйте! Помогите, пожалуйста, с программой: дана строка, вывести слова наименьшей длины в порядке возрастания.

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

Упорядочить слова в порядке возрастания их длины - C++
Дано предложение, слова в нем разделены пробелом. Упорядочить слова в порядке возрастания их длины.

Расположить слова порядке возрастания их длины - C++
Дана строка символов. Расположить их в порядке возрастания длины слова. Дайте хелпу ребятки;)

Переписать в выходную строку слова из входной строки в порядке возрастания их длины - C++
.Пожалуйста помогите решить задачу Срочно нужно было Переписать в выходную строку слова из входной строки в порядке возрастания их...

Переписать в выходную строку слова из входной строки в порядке возрастания их длины. - C++
Помогите с решенеие кому не сложно в Visual C++, пожалуйста. 1. Интервал между минимальным и максимальным значениями элементов...

3
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.10.2012, 14:50 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251); //для русификации текста
    stringstream ss("Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. "
        "Вывести эти слова в последовательности возрастания их длины");
    vector<string> vs;
    string temp;
    while (ss>>temp) vs.push_back(temp);
    sort(vs.begin(), vs.end(), [] (const string & s1, const string & s2) {return s1.size()<s2.size();});
    for (auto x : vs) cout<<x<<endl;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от linuxubuntu Посмотреть сообщение
сколько слов текста имеют длину 1, 2, 3, ... 10 символов
допишите уже сами
1
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
04.10.2012, 15:17 #3
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 <cstring>
 
int main()
{
    size_t const arrsize = 10, wcount = 50;
    size_t wlen;
    char s[] = "er  fgh t  ee  asdfghjklp f g fgh", *arr[arrsize][wcount] = {0}, *p = 0, **p1 = 0;
    for(p = strtok(s, " "); p; p = strtok(0, " "))
    {
        if((wlen = strlen(p)) <= 10)
        {
            p1 = arr[wlen - 1];
            while(*p1) ++p1;
            *p1 = p;
        }
    }
    for(wlen = 0; wlen < arrsize; ++wlen)
    {
        std::cout << wlen + 1 << ":  ";
        for(p1 = arr[wlen]; *p1; ++p1)
        {
            std::cout << *p1 << "  ";
        }
        std::cout << "- " << p1 - arr[wlen] << std::endl;
    }
    return 0;
}
2
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.10.2012, 16:22 #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
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <cstdlib>
#include <utility>
 
#include <boost/tokenizer.hpp>
 
int main()
{
    boost::char_separator<char> DELIMS(" ,.!?:;'()[]{}«»\"-");
 
    std::map<std::size_t, std::vector<std::string>> words;
    std::string str;
    while(std::getline(std::cin, str) && !str.empty())
    {
        boost::tokenizer<decltype(DELIMS)> tokens(str, DELIMS);
        for(const auto& word: tokens)
            if(word.length() <= 10)
                words[word.length()].emplace_back(std::move(word));
    }
    for(const auto& p: words)
    {
        std::cout << p.first << ": ";
        for(const auto& word: p.second)
            std::cout << word << ' ';
        std::cout << std::endl;
    }
    return 0;
}
0
04.10.2012, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 16:22
Привет! Вот еще темы с ответами:

Вывести элементы массива в порядке возрастания их длины - C++
Дано массив А$(10) вывести на печать элементы в возрастающем порядке их длины.

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

На печать вывести слова, стоящие на нечетных местах и имеющие длину больше длины предпоследнего слова - C++
Доброго времени суток, уважаемые форумчане. Мне нужна программа выполняющая следующие условия: &quot;Ввести строку. На печать вывести слова,...

Вводится строка. Вывести слова стоящие на нечетных местах и имеющие длину больше длины предпоследнего слова. - C++
#include&lt;fstream.h&gt; #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; void main() { int i,j,n,k,i1,l;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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