#include <iostream>
#include <functional>
#include <algorithm>
#include <string>
using std::cout;
using std::endl;
using std::string;
using namespace std::placeholders;
char to_upper(char ch)
{
std::locale local;
return std::use_facet<std::ctype<char> >(local).toupper(ch);
}
int main()
{
string s("C++C#JavaPythonPHP");
string sub_s("python");
string::iterator pos;
pos = search(s.begin(), s.end(),
sub_s.begin(), sub_s.end(),
bind(std::equal_to<char>(),
bind(to_upper, _1),
bind(to_upper, _2)));
if (pos != s.end()) {
cout << "found: " << sub_s << " in: " << s << endl;
}
}
/*
run:
found: python in: C++C#JavaPythonPHP
*/