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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 20:45   #1
delfi
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 15
По умолчанию С++

С++ Дан список слов, разделенных между собой пробелами. Составит программу поиска всех слов, в которых ровно два раза встречается заданная буква
delfi вне форума Ответить с цитированием
Старый 23.05.2011, 23:12   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

delfi

С++ Дан список слов, разделенных между собой пробелами. Составит программу поиска всех слов, в которых ровно два раза встречается заданная буква


вот эта программа должна убедить препода, что круче тебя только варёные яйца (да и то, вряд ли). Он испугается и больше не будет к тебе припариваться со своими дурацкими зачётами!

Код:
#include <locale>
#include <boost/tokenizer.hpp>
#include <boost/range/algorithm/count_if.hpp>

#include <string>
#include <iostream>

#include <boost/spirit/home/phoenix.hpp>
namespace phx = boost::phoenix;

/*
	Дан список слов, разделенных между собой пробелами. Составит программу поиска всех слов, в которых ровно два раза встречается заданная буква 
*/

int main()
{
	typedef boost::char_separator<char> separator;
	typedef boost::tokenizer<separator> tokenizer;

	setlocale(LC_ALL, "");

	const std::string s = "Since this golden era of the skies, flying has never been quite the same.";
	const char letter = 'e';

	const separator sep(" ,.");
	const tokenizer tokens(s, sep);
	
	using phx::arg_names::arg1;
	const size_t counter = boost::count_if(tokens, phx::count(arg1, letter) == 2);
	
	std::cout << "Number of words that have a '" << letter << "' letter is " << counter;
	
	return 0;
}
пример работы: http://liveworkspace.org/code/fdf38c...5da6a673c24328
Rififi вне форума Ответить с цитированием
Старый 24.05.2011, 09:00   #3
delfi
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
delfi

С++ Дан список слов, разделенных между собой пробелами. Составит программу поиска всех слов, в которых ровно два раза встречается заданная буква


вот эта программа должна убедить препода, что круче тебя только варёные яйца (да и то, вряд ли). Он испугается и больше не будет к тебе припариваться со своими дурацкими зачётами!

Код:
#include <locale>
#include <boost/tokenizer.hpp>
#include <boost/range/algorithm/count_if.hpp>

#include <string>
#include <iostream>

#include <boost/spirit/home/phoenix.hpp>
namespace phx = boost::phoenix;

/*
	Дан список слов, разделенных между собой пробелами. Составит программу поиска всех слов, в которых ровно два раза встречается заданная буква 
*/

int main()
{
	typedef boost::char_separator<char> separator;
	typedef boost::tokenizer<separator> tokenizer;

	setlocale(LC_ALL, "");

	const std::string s = "Since this golden era of the skies, flying has never been quite the same.";
	const char letter = 'e';

	const separator sep(" ,.");
	const tokenizer tokens(s, sep);
	
	using phx::arg_names::arg1;
	const size_t counter = boost::count_if(tokens, phx::count(arg1, letter) == 2);
	
	std::cout << "Number of words that have a '" << letter << "' letter is " << counter;
	
	return 0;
}
пример работы: http://liveworkspace.org/code/fdf38c...5da6a673c24328
прискорбное то, что я сама испугалась увидев эту задачу...хДД
сам решал?
а можно как то по проще?(

Последний раз редактировалось delfi; 24.05.2011 в 09:04.
delfi вне форума Ответить с цитированием
Ответ


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