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

Переставить слова в строке в порядке убывания количества цифр в них - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в компиляторе round myround http://www.cyberforum.ru/cpp-beginners/thread1216907.html
Сейчас сидел писал код и в компиляторе мне выбило ошибку на вот этом моменте: return round(r * 100.0) / 100.0; пытался переименовать на myround return myround(r * 100.0) / 100.0; ошибка пропадала, но в ходе выполнения программы она крашнулась после ввода шага h вот сам код: #pragma hdrstop #pragma argsused
C++ Структуры Доброго времени суток. Помогите ребят в написании программы. Известна информация о багаже (количество вещей и общий вес багажа) 10 пассажиров. Написать программу, которая обеспечивает: а) определение числа пассажиров, имеющих более двух вещей; б) поиск пассажира (есть ли такой имеется), багаж которого состоит из одной вещи весом менее 25 кг; в) определение числа пассажиров, количество вещей... http://www.cyberforum.ru/cpp-beginners/thread1216902.html
Создать класс "Фильм" C++
Добрый день помогите составить программу с классом. Условие: Создать класс фильм. Класс имеет атрибуты название, год выпуска, продолжительность, жанр. Функции элементов, которые запрашивают ввод информации о фильме и осуществить выбор самого продолжительного фильма. Заранее благодарю.
C++ Перегруженная функция (линейное и квадратное уравнение)
Проверьте пожалуйста код! Проблема в том что не могу вернуть х и х1!!! Может так нельзя возвращать!! # include <iostream> # include <cmath> using namespace std; double root (double a, double b, double c) { double D, x, x1; D = (pow(b,2))-(4*a*c); if (D>0)
C++ Ввод строки в буфер http://www.cyberforum.ru/cpp-beginners/thread1216809.html
Как считать строку с клавиатуры и оставить ее целой в буфере? Исходя из своих знаний, нашел только такой вариант: char a; cin.get(a); // считываем 1 символ, остальное остается в буфере cin.putback(a); // помещаем символ обратно И тогда получаем целую строку. Но хотелось бы реализовать это без лишних действий и переменных. Возможно ли это и если да то как? Добавлено через 14 часов...
C++ Алгоритм нейронные сети Ребят нужен алгоритм для такого задания может у кого есть примерное киньте пожалуйста: Тема: Однослойная нейронная сеть. Алгоритм: оригинальное дельта-правило. Задачи: 1. Найти или сформировать самостоятельно обучающую выборку для решения задачи классификации; Количество классов: 3 и более. Классы должны быть линейно разделимы. 2. Определить архитектуру НС 3. В любой среде... подробнее

Показать сообщение отдельно
Psilon
Master of Orion
 Аватар для Psilon
5749 / 4697 / 620
Регистрация: 10.07.2011
Сообщений: 14,163
Записей в блоге: 5
Завершенные тесты: 4
25.06.2014, 19:10     Переставить слова в строке в порядке убывания количества цифр в них
volk, мне кажется, самый короткий путь это с помощью регулярок выцепить слова и число цифр в них, ну а затем просто отсортировать по числу цифр.

Добавлено через 23 минуты
примерно так:
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
34
35
36
37
38
39
40
41
42
#include <regex>
#include <iterator>
#include <iostream>
#include <string>
#include <list>
 
using namespace std;
 
typedef struct
{
    string text;
    int count;
} list_item;
 
 
int main()
{
    const string s = "Quick1 brown234 fox23.";
 
    regex words_regex("\\b\\S+?(\\d*)\\b");
    auto words_begin = sregex_iterator(s.begin(), s.end(), words_regex);
    auto words_end = sregex_iterator();
 
    cout << "Found "
        << distance(words_begin, words_end)
        << " words:\n";
 
    list<list_item> result;
    for (sregex_iterator i = words_begin; i != words_end; ++i) {
        smatch match = *i;
        string match_str = match.str();
 
        list_item item;
        item.text = match_str;
        item.count = match[1].length();
        result.push_back(item);
    }
 
    result.sort([](list_item a, list_item b) -> bool {return a.count < b.count; });
 
    for_each(result.begin(), result.end(), [](list_item item){cout << item.text << '\t' << item.count << '\n'; });
}
 
Текущее время: 01:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru