c++ case insensitive count in C++
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Case insensitive string comparison in C++
C++ count and map
如何在不使用EDCOX1×0的情况下,在C++中执行大小写不敏感计数。我想数单词,不管他们的情况如何,但不想使用
如果您不想使用
您不必将字符串存储为小写,只需比较小写即可。
或者您可以使用strcasecmp或stricmp(如果有)。
或者你可以使用别人的解决方案。
可以使用AS STD::具有不区分大小写的自定义比较器函数对象的MAP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | struct StrCaseInsensitive { bool operator() (const string& left , const string& right ) { return _stricmp( left.c_str() , right.c_str() ) < 0; } }; int main(void) { char* input[] = {"Foo" ,"bar" ,"Bar" ,"FOO" }; std::map<string, int , StrCaseInsensitive> CountMap; for( int i = 0 ; i < 4; ++i ) { CountMap[ input[i] ] += 1; } return 0; } |