Страница 1 из 1

черканите если есть время

Добавлено: 14 апр 2010, 00:34
sid1868
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого слова.

Re: черканите если есть время

Добавлено: 14 апр 2010, 02:44
Romeo
Перемещено из раздела "С и С++".

Re: черканите если есть время

Добавлено: 14 апр 2010, 18:00
Хыиуду
Идем по строке, сравниваем очередной символ с пробелом. Если не пробел - увеличиваем счетчик на 1. Если пробел - сравниваем счетчик с предыдущим минимумом, если счетчик меньше - объявляем его новым минимумом. Обнуляем счетчик, идем дальше.

Re: черканите если есть время

Добавлено: 21 апр 2010, 03:44
rangerx

Код: Выделить всё

#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>

bool compare(const std::string& a, const std::string& b) { return a.length() < b.length(); }

int main()
{
	std::istringstream iss("asdasd sadfsdfas  dfgr sdqw lsdjkflk afd qgew");
	std::istream_iterator<std::string> iword(iss);
	std::cout << (*std::min_element(iword, std::istream_iterator<std::string>(), compare)).length() << std::endl;

	return 0;
}