
#include <iostream>
#include <string>
#include<algorithm>
#include<vector>


using namespace std;

struct comp
{

	bool operator()( std::string lhs, std::string rhs)
	{
		std::transform(lhs.begin(), lhs.end(),lhs.begin(), ::tolower);
		std::transform(rhs.begin(), rhs.end(),rhs.begin(), ::tolower);
		return lhs < rhs;
	}
};

int main(){


std::string str;
std::vector<std::string> v{
"This is a test",
"this is a test",
"Cats",
"cats",
"this thing" };



std::sort(v.begin(), v.end() , comp());

for(auto &x: v)
std::cout<<x<<std::endl;
}
