вводится строка в ней нужно поменять местами наименьшее и наибольшее слово (пишется на с++)
вот мой код
#include "stdafx.h"
#include
#include
#include
#include
#include
class LenCmp : public std::binary_function
public:
bool operator() (const std::string& a, const std::string& b){
return a.length() > b.length();
}
};
int main()
{
std::string s;
std::cout << "String: ";
std::getline(std::cin, s);
std::istringstream ist(s);
std::string tmp;
std::set
while ( ist >> tmp )
words.insert(tmp);
std::cout << "Max word: " << *words.begin() << std::endl;
std::cout << "Min word: " << *words.rbegin() << std::endl;
size_t max_pos = s.find(*words.begin());
s.replace(max_pos, words.begin()->length(), *words.rbegin());
size_t min_pos = s.find(*words.rbegin());
s.replace(min_pos, words.rbegin()->length(), *words.begin() );
std::cout << "Result: " << s << std::endl;
system ("pause");
return 0;
для части вариантов работает а для варианта : 123 12 123 1234 123 не работае в чем проблема? (препада интересует именно этот вариант)