String comparison operators

The problem is that the operator overload for < work according to a lexicographical case sensitive comparison.

You are not obtaining a random error, the fact is that a != A.

To have a case insensitive comparison you should first convert both strings to lowercase, something like:

string lowercase;
lowercase.resize(text.size());
transform(text.begin(), text.end(), lowercase.begin(), ::tolower);

And then compare them.

Leave a Comment