mrherbrooks
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ValidolX не брезгуйте использовать stl и boost, а также не стоит смешивать С-стиль с С++-стилем. Писал с ходу. Основная идея сравнивать отсортированные строки, которые равны по длине. Ведь в строке могут быть несколько одинаковых символов. Цитата: #include <vector> #include <string> #include <iostream> #include <algorithm> #include <boost/regex.hpp> #include <boost/algorithm/string/regex.hpp> #include <boost/algorithm/string/erase.hpp> int _tmain(int argc, _TCHAR* argv[]) { std::string text = "hell to lleh, helling fuck me hell, side lehl shithell, to push the lelh."; boost::erase_all(text,","); boost::erase_all(text,"."); std::vector<std::string>v; boost::algorithm::split_regex(v,text,boost::regex("\x20")); std::cout << v[0] << std::endl; std::string sort_str = v[0]; std::sort(sort_str.begin(),sort_str.end()); int size = v[0].length(); for (int i = 1; i < v.size(); i++) { if (v[i].length() == size) { std::string tmp = v[i]; std::sort(tmp.begin(),tmp.end()); if (sort_str == tmp) std::cout << v[i] << std::endl; } } std::cin.get(); return 0; } | |