November 1999
Intermediate to advanced
240 pages
5h 22m
English
Difficulty: 7
So you want a case-insensitive string class? Your mission, should you choose to accept it, is to write one.
This Item is composed of three related points.
What does “case-insensitive” mean?
Write a ci_string class that is identical to the standard std::string class but that is case-insensitive in the same way as the commonly provided extension stricmp().[1] A ci_string should be usable as follows:
ci_string s( "AbCdE" ); // case insensitive // assert( s == "abcde" ); assert( s == "ABCDE" ); // still case-preserving, of course // assert( strcmp( s.c_str(), "AbCdE" ) == 0 ); assert( strcmp( s.c_str(), "abcde" ) != 0 );
Is making case sensitivity a property of the object a good idea?
The ...
Read now
Unlock full access