Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 23:31   #1
Пьяный_Котик
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 3
По умолчанию задача c++ builder под ms dos

Написать программу,которая запрашивает текст с клавиатуры,находит самое длинное слово и определяет сколько раз оно встретилось в тексте.

пожалуйста,помогите,вопрос жизни и смерти) если можно с комментариями в листинге программы.Заранее спасибо
Пьяный_Котик вне форума Ответить с цитированием
Старый 30.11.2011, 14:07   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Зачем ms-dos? Скажи преподу, что ms-dos уже такое же древнее, как сами знаете что мамонта, и кто требует задания под дос, тому место на свалке истории (каГбэ с намёком ((((: ), а такие прогрессивные патсанчеги (или деввачги) как ты юзают только самые современные технологии.

Код:
#include <iostream>
#include <locale>

#include <string>
#include <vector>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <functional>

// Написать программу,которая запрашивает текст с клавиатуры,находит самое длинное слово и определяет сколько раз оно встретилось в тексте.

struct less
{
	template <typename T>
	bool operator()(const T& v1, const T& v2) const
	{ return v1.size() < v2.size(); }
};

void count(const std::string& text)
{
	std::stringstream ss(text);
	std::vector<std::string> v;

	typedef std::istream_iterator<std::string> I;
	std::copy(I(ss), I(), std::back_inserter(v));

	const auto max = std::max_element(v.cbegin(), v.cend(), less());
	std::cout << *max << " => " << std::count(v.cbegin(), v.cend(), *max);
}

int main()
{
	std::locale::global(std::locale(""));
	std::cout.imbue(std::locale());

	const std::string s = "1 22 qef 333 rew tg 4444 rg 5555  r 222 34t 322 ee 4444 kjf 4444";
	count(s);

	return 0;
}
Пример работы: http://liveworkspace.org/code/1221c2...171cc06912a82c
Rififi вне форума Ответить с цитированием
Старый 30.11.2011, 22:10   #3
Пьяный_Котик
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 3
По умолчанию

просто у нас практика на мс дос) и это О_о
Пьяный_Котик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Builder и Borland под DOS aank10 Общие вопросы C/C++ 2 29.06.2011 16:46
Из Dos под Win Nozema Фриланс 3 30.10.2009 17:34
C++ под DOS. Функции Xeon332 Общие вопросы C/C++ 34 29.11.2008 18:01
задача под windows,помогите написать.Надо написать на Borland C++Builder 6. eddddii Помощь студентам 9 23.05.2008 17:04