черканите если есть время
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого слова.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Перемещено из раздела "С и С++".
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Идем по строке, сравниваем очередной символ с пробелом. Если не пробел - увеличиваем счетчик на 1. Если пробел - сравниваем счетчик с предыдущим минимумом, если счетчик меньше - объявляем его новым минимумом. Обнуляем счетчик, идем дальше.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Код: Выделить всё
#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;
}